jueves, 10 de noviembre de 2016

Verificar CSRs con Python

Ayer ya os dije que era bastante fácil saber que había detrás de una petición de certificado CSR pese a estar bajo la influencia mágica del estándar criptográfico [X.509] y como ayer me encontré el siguiente comando OpenSSL en la página que os recomendé ayer.
  • openssl req -in mycsr.csr -noout -text
Pues he pensado, ¿Como puedo hacer esto con mi querido Python?


Así que buscando me he encontrado con una [librería especial para OpenSSL] y con un script muy chulo y puede que retoque en otra entrada.
import OpenSSL.crypto
from OpenSSL.crypto import load_certificate_request, FILETYPE_PEM 

csr = '''''-----BEGIN NEW CERTIFICATE REQUEST-----   ... tu CSR Base64 ... -----END NEW CERTIFICATE REQUEST-----'""" 
req = load_certificate_request(FILETYPE_PEM, csr) 
key = req.get_pubkey() key_type = 'RSA' if key.type() == OpenSSL.crypto.TYPE_RSA else 'DSA' 
subject = req.get_subject() components = dict(subject.get_components())
print "Common name:", components['CN'] 
print "Organisation:", components['O'] 
print "Orgainistional unit", components['OU'] 
print "City/locality:", components['L'] 
print "State/province:", components['ST'] 
print "Country:", components['C'] 
print "Signature algorithm:", '?'
print "Key algorithm:", key_type
print "Key size:", key.bits()
Espero que os sea de ayuda y o para saciar vuestra curiosidad como me ha pasado a mi.

Fuente:
Sed Buenos ;) 

No hay comentarios:

Publicar un comentario