C#.NET 讀取PFX私鑰證書並導出PEM格式私鑰


項目nuget引用 BouncyCastle。

 

讀取證書

X509Certificate2 x509 = new X509Certificate2(lblPfxPath.Text, txtPfxPwd.Text.Trim(), X509KeyStorageFlags.Exportable);
                //x509.PrivateKey.ToXmlString(true);//xml格式私鑰 
                txtPemPrivateKey.Text = xmlToPem((RSACryptoServiceProvider)x509.PrivateKey);

 

轉成PEM私鑰。

public string xmlToPem(RSACryptoServiceProvider rsa2)
        {
            string priKey = null;
            var p = rsa2.ExportParameters(true);

            var key = new RsaPrivateCrtKeyParameters(
                new BigInteger(1, p.Modulus), new BigInteger(1, p.Exponent), new BigInteger(1, p.D),
                new BigInteger(1, p.P), new BigInteger(1, p.Q), new BigInteger(1, p.DP), new BigInteger(1, p.DQ),
                new BigInteger(1, p.InverseQ));

            using (TextWriter sw = new StringWriter())
            {
                var pemWriter = new Org.BouncyCastle.OpenSsl.PemWriter(sw);
                pemWriter.WriteObject(key);
                pemWriter.Writer.Flush();
                priKey = sw.ToString();
            }

            return priKey;
        }

 

xml格式的直接:x509.PrivateKey.ToXmlString(true);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM