예제 #1
0
        private static AsymmetricAlgorithm LoadPrivateKey(string privateKeyPem)
        {
            var keyType         = DetectKeyType(privateKeyPem);
            var privateKeyBytes = PemDecoder.DecodeSection(privateKeyPem, keyType);
            var privateKey      = GetPrivateKey(keyType, new ReadOnlyMemory <byte>(privateKeyBytes));

            return(privateKey);
        }
예제 #2
0
        /// <summary>
        /// Creates a X509Certificate2 from a certificate from the PEM string <paramref name="certificateData"/>
        /// and a private key from the PEM string <paramref name="privateKeyData"/>.
        /// </summary>
        /// <param name="certificateData">A PEM-encoded certificate</param>
        /// <param name="privateKeyData">A PEM-encoded private key</param>
        /// <returns>A new X509Certificate2 instance based on the key and certificate files</returns>
        public X509Certificate2 LoadCertificateWithPrivateKeyFromStrings(string certificateData, string privateKeyData)
        {
            var privateKey = LoadPrivateKey(privateKeyData);

            var certificateBytes = PemDecoder.DecodeSection(certificateData, "CERTIFICATE");
            var certificate      = LoadCertificate(certificateBytes);

            return(CreateCertificateWithPrivateKey(certificate, privateKey));
        }