Создайте подпись RSA с помощью C# и проверьте с помощью OpenSSL.C#

Место общения программистов C#
Ответить
Anonymous
 Создайте подпись RSA с помощью C# и проверьте с помощью OpenSSL.

Сообщение Anonymous »

Я пытаюсь создать код на C#, который воспроизводит следующую команду OpenSSL

Код: Выделить всё

openssl dgst -sha256 -sign key.p8 -out sign.sha256 data.txt
Полученную подпись необходимо проверить командой

Код: Выделить всё

openssl dgst -sha256 -verify public_key.pub -signature sign.sha256 data.txt
У меня есть следующий код

Код: Выделить всё

var data = Encoding.UTF8.GetBytes(data_string);
using (var reader = File.OpenText(key_file)){
string key = reader.ReadToEnd();
key = key.Replace("-----BEGIN RSA PRIVATE KEY-----", String.Empty).Replace("-----END RSA PRIVATE KEY-----", String.Empty);

using(var rsa = RSA.Create()){
rsa.ImportPkcs8PrivateKey(Convert.FromBase64String(key), out _);
var signature = rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
File.WriteAllBytes(signature_path, signature);
}
}
Однако, когда я пытаюсь проверить подписанные данные, OpenSSL возвращает ошибку: 02000068: процедуры rsa: ossl_rsa_verify: неверная подпись. Может ли кто-нибудь указать мне, что я делаю неправильно?

Подробнее здесь: https://stackoverflow.com/questions/792 ... th-openssl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»