[Cryptography-dev] cryptography 36.0.1 Fernet example: AES in CBC mode UnsupportedAlgorithm
ejanssen at itmatters.nl
ejanssen at itmatters.nl
Wed Jan 19 11:53:49 EST 2022
Hi,
This is maybe not a cryptography question but an openssl one, please
bear with me..
I compiled openssl 1.1.1m myself and installed it next to the existing
1.0.1t from my distribution (debian 8). I built a Python linking against
this new openssl.
When I try the example code from the documentation I get
UnsupportedAlgorithm:
$ python3 -i
Python 3.9.10 (main, Jan 19 2022, 14:33:07)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cryptography.hazmat.backends.openssl.backend as b
>>> b.openssl_version_text()
'OpenSSL 1.1.1m 14 Dec 2021'
>>> '{:x}'.format(b.openssl_version_number())
'101010df'
>>> from cryptography.fernet import Fernet
>>> key = Fernet.generate_key()
>>> f = Fernet(key)
>>> token = f.encrypt(b"my deep dark secret")
Traceback (most recent call last):
<skipping parts>
raise UnsupportedAlgorithm(msg, _Reasons.UNSUPPORTED_CIPHER)
cryptography.exceptions.UnsupportedAlgorithm: cipher AES in CBC mode is
not supported by this backend (Your version of OpenSSL may be too old.
Current version: OpenSSL 1.1.1m 14 Dec 2021.)
However, I can do this on the commandline:
$ openssl version
OpenSSL 1.1.1m 14 Dec 2021
$ openssl enc -aes128 -base64 -in text.plain -out text.enc
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
$ cat text.enc
U2FsdGVkX18dFTIizaI1vyR/zo26kRa6ZusV61GMYZ8=
This didn't work initially, I first had to align openssl.cnf with the
one from the distribution. But now I would say the openssl itself is
working.
Why is this not working in the cryptography module? Or/and, what would
be the best next step to analyse?
Thanks!
Erik
More information about the Cryptography-dev
mailing list