Как проверить подпись ECDSA в формате ASN.1 и открытый ключ в DER с помощью BouncyCastle? - PullRequest
0 голосов
/ 29 января 2019

У меня есть байтовый массив, который содержит открытый ключ, и байтовый массив, который содержит отформатированную подпись 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));

Но он всегда пишетложный.Что может быть не так?

Использование BouncyCastle.NetCore 1.8.3 в .NET Core.

1 Ответ

0 голосов
/ 29 января 2019

Оказывается, я не получал правильную подпись.

Instaead из:

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

Это должно быть:

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