Преобразование закрытого ключа 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

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