I am trying to use C# to read in a .pem
file that contains only a RSA public key. I do not have access to the private key information, nor does my application require it. The file myprivatekey.pem
file begins with
-----BEGIN PUBLIC KEY-----
and ends with
-----END PUBLIC KEY-----
.
My current code is as follows:
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();
However the code throws an InvalidCastException
with the message
Unable to cast object of type 'Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters' to type 'Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair'.
How can I use Bouncy Castle's PemReader
to read only a public key, when no private key information is available?