Example #1
0
        // Parses a PKCS#8 encoded private key
        public static RSAPrivateKey ParsePem(Stream input)
        {
            var der = Pem.Decode(input, Pem.PrivateKey);

            using (var derStream = new MemoryStream(der))
            {
                // TODO add more validation, ensure that the algorithm used is RSA

                var asn1  = (Sequence)Asn1Parser.Default.Parse(derStream).First();
                var octet = (OctetString)asn1.Children.Last();
                using (var octetStream = new MemoryStream(octet.UnencodedValue))
                {
                    return(RSAPrivateKey.ParseDer(octetStream));
                }
            }
        }
Example #2
0
 public string ToPemString()
 {
     return(Pem.Encode(ToDerBytes(), Pem.RSAPrivateKey));
 }
Example #3
0
 private static byte[] DecodePem(Stream input)
 {
     return(Pem.Decode(input, Pem.RSAPrivateKey));
 }
        public static string EncodeAsBase64(CertificateRequestData requestData)
        {
            var bytes = EncodeAsDer(requestData);

            return(Pem.Encode(bytes, "NEW CERTIFICATE REQUEST"));
        }