In my current task I have to construct private key object from its DER bytes. In OpenSSL I can easily do this with d2i_RSAPrivateKey function but in .NET this doesn't seems to be an easy task. I hoped in BouncyCastle this can be done in single method call but it requires the following code to achieve the functionality
byte[] privateKeyDer = File.ReadAllBytes("PrivateKey.der");
var derSequence = new Asn1InputStream(privateKeyDer).ReadObject();
var privateKeyStructure = new RsaPrivateKeyStructure((Asn1Sequence)derSequence);
var privateCrtKeyParameters =
new RsaPrivateCrtKeyParameters(privateKeyStructure.Modulus,
privateKeyStructure.PublicExponent,
privateKeyStructure.PrivateExponent,
privateKeyStructure.Prime1,
privateKeyStructure.Prime2,
privateKeyStructure.Exponent1,
privateKeyStructure.Exponent2,
privateKeyStructure.Coefficient);
var privateKey = DotNetUtilities.ToRSA(privateCrtKeyParameters); // returns RSA object
Please note the classes Asn1InputStream, RsaPrivateKeyStructure, RsaPrivateCrtKeyParameters and DotNetUtilities are provided by BouncyCastle.
No comments:
Post a Comment