簡體   English   中英

通過 C# 中 BouncyCastle 庫中的 x509Crl.IsRevoked() 方法檢查證書?

[英]Checking certificate by x509Crl.IsRevoked() method in BouncyCastle library in C#?

我正在嘗試使用其吊銷列表(crl 文件)檢查證書。 在 BouncyCustle 庫中有一個方法x509Crl.IsRevoked() ,應該用於此。 關鍵是它獲取x509Certificate對象作為參數,但我無法理解如何創建這個x509Certificate對象。 我使用DotNetUtilities.FromX509Certificate()System.Security.Cryptography.X509Certificates.x509Certificate2對象轉換為Org.BouncyCastle.X509.X509Certificate對象,但我遇到了問題 - 方法IsRevoked()總是返回true - 對於所有 crl 測試。

問題:如何直接從二進制創建Org.BouncyCastle.X509.X509Certificate對象而不從System.Security.Cryptography.X509Certificates.x509Certificate2轉換?

我用它的 crl 文件檢查證書的代碼:

static public void RevocationChecker(string certPath, string crlPath)
    {
        X509Certificate2 cert = new X509Certificate2();
        cert.Import(File.ReadAllBytes(certPath));
        Org.BouncyCastle.X509.X509Certificate bouncyCert = DotNetUtilities.FromX509Certificate(cert);

        X509CrlParser crlParser = new X509CrlParser();
        X509Crl crl = crlParser.ReadCrl(File.ReadAllBytes(crlPath));

        bool rezult = crl.IsRevoked(bouncyCert);
        Console.WriteLine(rezult);
    }

試一試:

System.Security.Cryptography.X509Certificates.X509Certificate cert = new System.Security
.Cryptography.X509Certificates.X509Certificate(File.ReadAllBytes(certPath));`    

Org.BouncyCastle.X509.X509Certificate bouncyCert = new Org.BouncyCastle.X509
.X509CertificateParser().ReadCertificate(cert.GetRawCertData());

暫無
暫無

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

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