Инициализировать объект RSA из файла PEM - PullRequest
0 голосов
/ 10 ноября 2018

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

...