WSAA Python3 UTF-8 Encoding - #46
Conversation
* UTF-8 encoding * Fixes TypeError: data must be bytes or None, not str
|
Gracias por el aporte @urbina05 ! Consultas:
Si puedo mañana lo pruebo (y recorro los tests para ver en que estado están); sería útil si alguien más puede revisarlo antes del merge. |
|
De nada, estos cambios me salvaron de una. Te respondo en orden:
|
| bio = BIO.MemoryBuffer(cert) | ||
| x509 = X509.load_cert_bio(bio, X509.FORMAT_DER) | ||
| bio = BIO.MemoryBuffer(cert.encode('utf8')) | ||
| x509 = X511.load_cert_bio(bio, X509.FORMAT_DER) |
There was a problem hiding this comment.
Sin entender mucho esto es lo único que me llama la atención, el cambio de 509 a 511
There was a problem hiding this comment.
Buena observación, posiblemente es un error de tipeo, debería ser X509, que es el nombre que está importado (y debería estar funcionando en otra linea más abajo para los casos normales).
Para probarlo, habría que pasar un certificado en binario, llamando al método AnalizarCertificado(crt, binary=True)
|
Lo probé en local y me funcionó perfecto con este PR e instalando M2Crypto con "pip3 install M2Crypto". |
|
@jjscarafia para probarlo sin M2Crypto habría que desinstalar ese paquete o saltear el import en wsaa.py:30 @urbina05 ahi hice el comentario en la parte que está comentada en Habría que revisar la cobertura de los tests, porque puede haber algunas partes del código que no se usen frecuentemente, dependan del sistema operativo, etc.. |
Para corregir excepciones de Python3 por encodings (TypeError y AttributeError) se les añadio encode('utf8') o decode('utf8') a las llamadas a funciones:
Además el archivo wsaa.py ahora tiene codificación utf8 y los espacios en blancos fueron removidos