У меня есть следующий метод, который может читать в закрытом ключе в формате XML.
private RSAParameters GetPrivateKey(string privateKeyPath)
{
RSAParameters privateKey;
string readContents;
using (StreamReader streamReader = new StreamReader(privateKeyPath, Encoding.UTF8))
{
readContents = streamReader.ReadToEnd();
}
using (var rsa = new RSACryptoServiceProvider(2048))
{
rsa.FromXmlString(readContents);
privateKey = rsa.ExportParameters(true);
}
return privateKey;
}
Я хочу изменить этот метод на закрытый ключ в формате PEM.
Мой закрытый ключ выглядит так:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAuc7/6TDyberFapcC2XfXKXzF2W8IxfgVXigduvE6B0IQBfxD
J1WcWrNriERUsMpKw/2zphxIXHLrsMZ0l5FcxuZBEqtjSskMqOaMKitMfuZBrcaX
e/0W9HUgPEUBNEv35UHtZbInk7K72KEYaTkoxmI8pP/g82lWnGPw1HgjtFWbL9Vx
--8<-----------8<------------8<-----------8<-----------8<-------
SQBBCQKBgQCaOvc8cmtR8vm8HWKJ93qA0OFmUNcW5Rd32q5Zy2FSFfhODnajP7fE
kqOL1+QS4uxd5e35PCkhYVZkAigKt+I+Mx+M14HLyx6gdeU1fXJGh/LltyWM9cra
Rb059rp8d/1c128t7WdCctAcV09PDVbV8T7xVtr7agBLM47LbgL1QQ==
-----END RSA PRIVATE KEY-----
Я думаю, это было бы очень просто найти в документации класса RSCryptoServiceProvider:
https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.rsacryptoserviceprovider?redirectedfrom=MSDN&view=netframework-4.7.2
Но это не так.
Метод FromXmlString задокументирован как «Инициализирует объект RSA из XML», я ожидаю увидеть похожий метод с «Инициализирует объект RSA из PEM».
[EDIT]
Я пытался использовать это решение:
https://stackoverflow.com/a/32243171/192044
Но он выдал эту ошибку:
![enter image description here](https://i.stack.imgur.com/iNFYZ.png)