Expand description
ECDSA 签名 / 验签:P-256(SHA-256)、P-384(SHA-384)、secp256k1(SHA-256)。
十六进制约定(与国密 SM2 一致):
- 私钥:裸标量定长 hex(P-256 / secp256k1 64 位,P-384 96 位);
- 公钥:SEC1 非压缩点
04‖X‖Yhex(P-256 / secp256k1 130 位,P-384 194 位); - 签名:定长
r‖shex(P-256 / secp256k1 128 位,P-384 192 位)。
签名 nonce 走 RFC 6979 确定性路径:ecdsa 0.16 的 Signer 实现即 RFC 6979 §3.2
算法(已在 ecdsa-0.16.9 源码确认),同私钥 + 同消息的签名逐字节可复现,
不消耗随机源(RFC 6979 附录 A.2.5 定值向量已入测试)。
low-s 归一化:签名输出前对 s 取 min(s, n−s)(BIP-62 惯例),消除
(r, s) / (r, n−s) 双解延展性——同一消息 + 密钥只有唯一签名字节串,
适合以签名字节做去重 / 缓存键的场景。RFC 6979 原始向量中 s 高于 n/2 的
条目,测试按归一化后的期望值断言(r 不变,n−s 已独立复算核对)。
Structs§
- Ecdsa
P256 Signer - ECDSA P-256(SHA-256)签名器。
- Ecdsa
P384 Signer - ECDSA P-384(SHA-384)签名器。
- Ecdsa
Secp256k1 Signer - ECDSA secp256k1(SHA-256)签名器。