2017-02-01 1 views
0

J'utilise python, bibliothèque pyopenssl pour vérifier une liste de révocation de certificats par rapport à son autorité de certification.Vérifiez CRL contre son CA

Ce que j'est:

Je reçois l'autorité de certification:

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

Je reçois la liste de révocation:

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

Comment puis-je vérifier que la liste de révocation appartient à la CA, Je sais que cela peut être fait avec openssl, mais comment le résoudre en pur code python, sans ouvrir openssl en tant que sous-processus? N'importe quel ideeas quelqu'un?

Répondre

0

En utilisant pyopenssl vous pouvez faire:

# 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() 

Prendre en compte le fait que la vérification de la validité de la signature sur la liste de révocation ne suffit pas de savoir si la liste de révocation doit faire confiance (Voir RFC 5280)