Разбор CRL с использованием OpenSSL - PullRequest
0 голосов
/ 03 октября 2018

Используя приведенный ниже фрагмент кода, я могу получить объект CRL из сертификата CRL:

import OpenSSL

with open('/Users/goutamdas/Desktop/Certificate/My_Certs/crl_ocsp.pem', 'r') as _crl_file:
    crl = "".join(_crl_file.readlines())
print(crl)

crl_object = OpenSSL.crypto.load_crl(OpenSSL.crypto.FILETYPE_PEM, crl)
print("obj: ", crl_object)

Теперь я хочу проанализировать следующие 2 даты из этого файла CRL, и похоже, что OpenSSL не предоставляетлюбой относительный метод для извлечения.Любое предложение, как я могу это сделать.

    Last Update: Sep 17 18:01:34 2018 GMT
    Next Update: Oct 17 18:01:34 2018 GMT

1 Ответ

0 голосов
/ 03 октября 2018

Классы, предоставляемые через pyopenssl, ограничены, вам часто лучше перейти на более мощные классы из модуля cryptography, который используется под капотом.Например, для CRL вы можете получить доступ к классу cryptography.x509.CertificateRevocationList с помощью документированного to_cryptography() метода здесь .Он раскрывает атрибуты, которые вы ищете.Продолжая то, что вы сделали:

ccrl_object = crl_object.to_cryptography()
print(ccrl_object.last_update)
print(ccrl_object.next_update)

дает что-то вроде

2005-02-06 12:00:00
2005-02-05 12:00:00
...