如何从.NET中读取PEM RSA私钥
问题描述:
我有一个 RSA
私钥在 PEM
格式,有一个直接的方式来阅读从.NET和实例化 RSACryptoServiceProvider
以解密用相应的公钥加密的数据?
I've got an RSA
private key in PEM
format, is there a straight forward way to read that from .NET and instantiate an RSACryptoServiceProvider
to decrypt data encrypted with the corresponding public key?
答
我解决了,谢谢。如果有人有兴趣, bouncycastle 做了,戏弄,只是花了我一些时间,由于缺乏知识从我的侧面和文档。这是代码:
I solved, thanks. In case anyone's interested, bouncycastle did the trick, just took me some time due to lack of knowledge from on my side and documentation. This is the code:
var bytesToDecrypt = Convert.FromBase64String("la0Cz.....D43g=="); // string to decrypt, base64 encoded
AsymmetricCipherKeyPair keyPair;
using (var reader = File.OpenText(@"c:\myprivatekey.pem")) // file containing RSA PKCS1 private key
keyPair = (AsymmetricCipherKeyPair) new PemReader(reader).ReadObject();
var decryptEngine = new Pkcs1Encoding(new RsaEngine());
decryptEngine.Init(false, keyPair.Private);
var decrypted = Encoding.UTF8.GetString(decryptEngine.ProcessBlock(bytesToDecrypt, 0, bytesToDecrypt.Length));