Skip to main content

Module ecdsa

Module ecdsa 

Source
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‖Y hex(P-256 / secp256k1 130 位,P-384 194 位);
  • 签名:定长 r‖s hex(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§

EcdsaP256Signer
ECDSA P-256(SHA-256)签名器。
EcdsaP384Signer
ECDSA P-384(SHA-384)签名器。
EcdsaSecp256k1Signer
ECDSA secp256k1(SHA-256)签名器。