我想使用 ECDSA-NIST-P256V1-SHA256 算法验证 Github 消息。我有消息、签名、GitHub 公钥。
这是当前代码:
from ecdsa import SigningKey, NIST256p
import ecdsa
# Github transmit values:
message = '[{"token":"some_token","type":"some_type","url":"some_url"}]'
sig = "MEUCIQDKZokqnCjrRtw0tni+2Ltvl/uiMJ1EGumEsp1BsNr32AIgQY1YXD2nlj+XNfGK4rBfkMJ1JDOQcYXxa2sY8FNkrKc="
# Github public key
public_key = '-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9MJJHnMfn2+H4xL4YaPDA4RpJqUq\nkCmRCBnYERxZanmcpzQSXs1X/AljlKkbJ8qpVIW4clayyef9gWhFbNHWAA==\n-----END PUBLIC KEY-----\n'
vk = ecdsa.VerifyingKey.from_string(public_key.encode(), curve=ecdsa.NIST256p, hashfunc=sha256)
vk.verify(sig.encode(), message)
我有错误:
ecdsa.errors.MalformedPointError:字符串长度与曲线的任何启用(压缩、混合、原始、未压缩)编码的长度不匹配。