Проверьте CRL против своего CA

Я использую Python, библиотеку pyopenssl для проверки CRL против его CA.

Что у меня есть:

Я получаю сертификат центра:

with open(ca_file_path) as ca_file_obj:
     ca = crypto.load_certificate(crypto.FILETYPE_PEM, ca_file_obj.read())

Я получаю CRL:

with open(crl_file_path) as crl_file_obj:
      crl = crypto.load_crl(crypto.FILETYPE_PEM, crl_file_obj.read())

Как я могу проверить, что CRL принадлежит CA, я знаю, что это можно сделать с помощью openssl, но как решить это в чистом коде Python, не открывая openssl как подпроцесс? Любые идеи кто-нибудь?

1 ответ

Используя pyopenssl, вы можете сделать:

# Export CRL as a cryptography CRL.
crl_crypto = crl.to_cryptography()

# Get CA Public Key as _RSAPublicKey
ca_pub_key = ca.get_pubkey().to_cryptography_key()

# Validate CRL against CA
valid_signature = crl_crypto.is_signature_valid()

Примите во внимание, что проверка действительности подписи на CRL недостаточна, чтобы знать, следует ли доверять CRL (см. RFC 5280).

Другие вопросы по тегам