【问题标题】:How to verify ECDSA signature in ASN.1 format and public key in DER using BouncyCastle?如何使用 BouncyCastle 在 DER 中验证 ASN.1 格式的 ECDSA 签名和公钥?
【发布时间】:2019-01-29 01:18:50
【问题描述】:

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

【问题讨论】:

    标签: c# .net-core bouncycastle ecdsa


    【解决方案1】:

    原来我没有得到正确的签名者。

    代替:

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

    应该是:

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

    【讨论】:

      猜你喜欢
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多