我正在尝试使用C#读取仅包含RSA公钥的.pem
文件。我无权访问私钥信息,我的应用程序也不需要它。文件myprivatekey.pem
文件开头为-----BEGIN PUBLIC KEY-----
并以-----END PUBLIC KEY-----
。
我当前的代码如下:
Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair keyPair;
using (var reader = File.OpenText(@"c:\keys\myprivatekey.pem"))
keyPair = (Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject();
但是代码会在消息中抛出
InvalidCastException
在没有私钥信息可用的情况下,如何使用Bouncy CaSTLe的
PemReader
读取公钥? 最佳答案
以下代码将从给定的文件名中读取公共(public) key 。对于任何生产代码,应更改异常处理。此方法返回AsymetricKeyParameter
:
public Org.BouncyCastle.Crypto.AsymmetricKeyParameter ReadAsymmetricKeyParameter(string pemFilename)
{
var fileStream = System.IO.File.OpenText(pemFilename);
var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(fileStream);
var KeyParameter = (Org.BouncyCastle.Crypto.AsymmetricKeyParameter)pemReader.ReadObject();
return KeyParameter;
}
关于c# - 仅使用Bouncy CaSTLe读取PEM RSA公钥,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11346200/