如何使用BouncyCastle验证ASN.1格式的ECDSA签名和DER中的公钥



我有一个包含公钥的字节数组和一个包含 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));

但它总是写假的。可能出了什么问题?

在.NET Core上使用BouncyCastle.NetCore 1.8.3。

事实证明我没有找到正确的签名者。

Instaead of :

var signer = SignerUtilities.GetSigner("ECDSA");

它应该是:

var signer = SignerUtilities.GetSigner("SHA256withECDSA");

最新更新