Проверка сертификата методом x509Crl.IsRevoked() в библиотеке BouncyCastle в 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);
    }

1 ответ

Решение

Дайте этому шанс:

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());
Другие вопросы по тегам