我正试图编写一个python脚本来验证ECDSA签名,但我在这方面花了很长时间。在
这是我使用的代码:
public_key = ecdsa.VerifyingKey.from_string(pubkey, curve=ecdsa.SECP256k1)
verified = public_key.verify_digest(signature, val, sigdecode=ecdsa.util.sigdecode_der)
如果签名r和s为正,则效果良好,但如果其中任何一个为负,则会引发断言错误。我检查了ecdsa源代码,看到了这一行:
^{pr2}$https://github.com/warner/python-ecdsa/blob/master/ecdsa/der.py#L105
为什么会这样?这个图书馆不是“公共”的吗?我有什么选择?删除断言行是否安全?在
ECDSA本身不使用负数,因此我不希望它的Python实现支持负数。ECDSA所使用的数的类型介于0和某个大素数之间,并且遵循模运算的规律。在
相关问题 更多 >
编程相关推荐