Преобразование закрытого ключа PKCS8 PEM в RSAParameter в C#C#

Место общения программистов C#
Ответить
Anonymous
 Преобразование закрытого ключа PKCS8 PEM в RSAParameter в C#

Сообщение Anonymous »

У меня есть ключ в формате

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

-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
Я хочу преобразовать его в ключ RSA, чтобы создать из него JWT. Я использую .NET 3.5 Framework.
Но когда я использую этот код

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

PemReader pemReader = new PemReader(new StringReader(pem));
object key = pemReader.ReadObject();
//rsapri
RSAParameters rsaParameters = isPrivate ?
DotNetUtilities.ToRSAParameters((RsaPrivateCrtKeyParameters)(((AsymmetricCipherKeyPair)key).Private)) :
DotNetUtilities.ToRSAParameters((RsaKeyParameters)key);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParameters);

return rsa;
Я получаю сообщение об ошибке

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

InvalidCastException: 'Unable to cast object of type 'Org.BouncyCastle.Crypto.Parameters.RsaPrivateCrtKeyParameters' to type 'Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair'.' 
Я понял, поскольку имеющийся у меня закрытый ключ имеет формат PKCS8, а не PKCS1.
Есть ли способ преобразовать PKCS8 в RSA?

Подробнее здесь: https://stackoverflow.com/questions/786 ... in-c-sharp
Ответить

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

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

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

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

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