【发布时间】:2020-09-02 16:49:27
【问题描述】:
我正在尝试使用其吊销列表(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);
}
【问题讨论】:
标签: c# bouncycastle x509certificate x509certificate2 certificate-revocation