繁体   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