簡體   English   中英

如何讀取 Pem 證書和私鑰文件並創建 Bouncy Castle X509Certificate 和 Bouncy Castle AsymmetricKeyParameter dotnet 核心?

[英]How to Read a Pem Cert and Private Key Files and create Bouncy Castle X509Certificate and Bouncy Castle AsymmetricKeyParameter dotnet core?

如何將未加密的 PEM 證書及其關聯的私鑰讀取到可用的 C# Bouncy Castle 對象中? 我還沒有找到使用 Bouncy Castle 執行此操作的任何簡單方法。 使用 dotnet security 的 X509Certificate2 更容易做到(只需將文件作為字節傳遞給它的構造函數),但是轉換為充氣城堡X509Certificate並將關聯的私鑰轉換為AsymmetricKeyParameter確實很麻煩。 使用 Bouncy Castle,您必須了解用於簽名的算法類型。 從具有私有和公共部分的 Pem 獲得 BouncyCastle 證書的最簡單方法是什么?

這就是我想出的。 function 看來是正確的。 我希望有 Bouncy Castle - Cryptic 密碼學庫的注釋。

 public static class PemFileReader{

    public static X509Certificate ReadCert(string pathToPemFile)
    {
        X509CertificateParser x509CertificateParser = new X509CertificateParser();
        var cert = x509CertificateParser.ReadCertificate(File.ReadAllBytes(pathToPemFile));

        return cert;

    }

    public static AsymmetricKeyParameter ReadPemPrivateKey(string pathToPemFile)
    {

        StreamReader streamReader = File.OpenText(pathToPemFile);

        Org.BouncyCastle.Utilities.IO.Pem.PemReader pemReader = new Org.BouncyCastle.Utilities.IO.Pem.PemReader(streamReader);

        PemObject pemObject = pemReader.ReadPemObject();

        PrivateKeyInfo privateKeyInfo = PrivateKeyInfo.GetInstance(pemObject.Content);

        AsymmetricKeyParameter privateKeyBC = PrivateKeyFactory.CreateKey(privateKeyInfo);

        return privateKeyBC;


    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM