我有一个包含公用密钥的字节数组和一个包含ASN.1格式化签名的字节数组。使用ECDSA P-256。
以下代码加载公钥:
var publicKey = PublicKeyFactory.CreateKey(publicKeyDERBytes);
下面的代码验证签名:
var signer = SignerUtilities.GetSigner("ECDSA");
signer.Init(false, publicKey);
signer.BlockUpdate(signatureASN1Bytes, 0, signatureASN1Bytes.Length);
Console.WriteLine(signer.VerifySignature(signature));
但是它总是写为false。怎么了?
在.NET Core上使用BouncyCastle.NetCore 1.8.3。
答案 0 :(得分:0)
结果是我没有得到正确的签名者。
原因:
var signer = SignerUtilities.GetSigner("ECDSA");
应该是:
var signer = SignerUtilities.GetSigner("SHA256withECDSA");