Compilar la biblioteca "cryptography" con una versión de OpenSSL alternativa

Hablo un poco sobre la biblioteca Cryptography en el artículo La biblioteca "cryptography" o cómo generar CSRs en Python. Puedes leer los primeros párrafos para tener algo de contexto.

Si necesitas instalar Cryptography con una versión alternativa de OpenSSL, puedes indicar el path de instalación de la versión deseada de OpenSSL mediante variables de entorno.

Por ejemplo:

$ LDFLAGS="-L/usr/local/ssl/lib" \
  CFLAGS="-I/usr/local/ssl/include" \
  python3 -m pip install -U cryptography

Una vez compilado e instalado, podemos asegurarnos de qué versión de OpenSSL se está utilizando en Cryptography. Para ello escribimos este comando en el terminal:

$ python3 -c "from cryptography.hazmat.backends.openssl.backend import backend;print(backend.openssl_version_text())"

De esta manera verificamos que estamos usando la versión de OpenSSL que queremos usar.

Por supuesto, esto funciona tanto para Python 2 como para Python 3.

Tal vez te interese echarle un vistazo al hilo de la lista de correo.

Esta técnica es habitual al compilar código en lenguaje C, lo que es perfectamente apropiado en el caso de Cryptography porque, si bien es una librería para Python, contiene C en su interior.

PS: Los ejemplos que pongo son en Python 3 para que os vayáis acostumbrando, pero Cryptography funciona tanto en Python 2 como en Python 3.