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); }
/// <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)); }