跳到主要内容

3.3.4. ECDSA Using Curve P-256 DSS and SHA-256 (使用曲线 P-256 DSS 与 SHA-256 的 ECDSA)

3.3.4. ECDSA Using Curve P-256 DSS and SHA-256 (使用曲线 P-256 DSS 与 SHA-256 的 ECDSA)

使用该算法签名时, 签名者使用曲线 P-256 与签名者私钥签名密钥对签名基 (第 2.5 节) 应用 [FIPS186-5] 定义的 ECDSA 签名算法. 对签名基应用哈希 SHA-256 [RFC6234] 以创建应用数字签名的摘要内容 (M). 签名算法返回两个整数值: r 与 s. 二者均编码为大端无符号整数, 零填充至各 32 八位组. 将这些编码值连接为单个 64 八位组数组, 由 r 的编码值后接 s 的编码值组成. (r, s) 的该连接结果为第 3.1 节使用的 HTTP 消息签名输出字节数组.

使用该算法验证时, 验证者使用验证密钥材料的公钥部分与按第 3.2 节重建的签名基应用 [FIPS186-5] 定义的 ECDSA 签名算法. 对签名基应用哈希函数 SHA-256 [RFC6234] 以创建应用签名验证函数的摘要内容 (M). 验证者按第 3.2 节提取待验证的 HTTP 消息签名 (S). 该值为 64 八位组数组, 由按顺序连接的 r 与 s 的编码值组成. 二者均编码为大端无符号整数, 零填充至各 32 八位组. 所得签名值 (r, s) 用作签名验证函数的输入. 验证函数的结果指示所呈现签名是否有效.

注意 ECDSA 签名算法的输出是非确定性的, 因此在签名基上重新计算新签名并与既有签名比较并不正确. 而应使用此处定义的验证算法. 见第 7.3.5 节.

可在运行时使用 alg 签名参数的 ecdsa-p256-sha256 值指示使用该算法.