2017-03-24 3 views
0

Eigentlich lese ich eine .pem-Datei mit M2Crypto RSA, alles funktioniert gut, aber vor der virtuellen Umgebung und der Inkompatibilität dieser auf SSLv2_method auf Ubuntu und Gunicorn muss ich mit der gleichen Methodik lesen und signieren mein Code funktioniert gut mit:M2Crypto RSA Alternative Methode für Leseschlüssel

keys = RSA.load_key(archivo_pem) 
cert_file = open(archivo_cer, 'r') 
cert = base64.b64encode(cert_file.read()) 
xdoc = ET.fromstring(cfdi) 
xsl_root = ET.parse('cadenaoriginal_3_3.xslt') 
xsl = ET.XSLT(xsl_root) 
cadena_original = xsl(xdoc) 
digest = hashlib.new('sha256', str(cadena_original)).digest() 
sello = base64.b64encode(keys.sign(digest, "sha256")) 
comp = xdoc.get('Comprobante') 
xdoc.attrib['Sello'] = sello 
xdoc.attrib['Certificado'] = cert 
return ET.tostring(xdoc) 

möchte ich diese für eine native Methode

keys = RSA.load_key(archivo_pem) 
keys.sign(digest, "sha256") 

ändern.

Die key.pem beigns mit

-----BEGIN PRIVATE KEY----- 
MY KEY 
-----END PRIVATE KEY----- 

Alle Arbeiten auf Konsolen-Modus, aber wenn wir versuchen, es auf Gunicorn mit Venv und Arbeiter versagen die m2crypto Version zu laufen, und es spielt keine Rolle, welche Version wir Werde mit M2Crypto immer fehlschlagen.

Irgendwelche Tipps für einen einheitlichen Modus?

Grüße!

Antwort

0

Versuchen https://pypi.python.org/pypi/M2Crypto/0.26.0 ... SSLv2 Probleme sollten weg sein (wie die Methode).

+0

Gelöst! Scheint wie M2Crypto ist nicht kompatibel mit Python 3.5 Ich benutze Python 3.5 auf meinem venv ich ändere es für 2.7 und aktualisieren Sie die neue Version von M2Crypto für 0.26 diese Version reparieren auf Linux die SSLv2 Ausgabe! – UlyssesMarx

+0

@UlyssesMarx Hilf mir, einen Code-Review auf https://gitlab.com/m2crypto/m2crypto/merge_requests/65 zu machen ... Abgesehen von der fehlenden Code-Überprüfung ist der Port zu Python 3 fertig. – mcepl

Verwandte Themen