[crypto] Use Cryptodome namespace instead of Crypto
PyCryptodome comes in two flavors: “an almost drop-in replacement for the old
PyCrypto library” and “a library independent of the old PyCrypto”. The former
uses the Crypto namespace, and is shipped as `pycryptodome` while the latter
uses Cryptodome instead and lies in the `pycryptodomex` package.
Given the reason to switch to PyCryptodome is that PyCrypto in unmaintained,
its probably better to avoid any mistake and mandate the specific usage of
the Cryptodome namespace by requiring `pycryptodomex` instead of
`pycryptodome`.
A more present reason is that Debian buster will only provide a package
with the separate namespace flavor. The current Recommends is not working with
the current code. Although it's important to note that the package name will
probably have to be changed to `python3-pycryptodomex` once
https://bugs.debian.org/886291 is solved.
--- a/cubicweb/crypto.py Mon Jun 17 11:12:03 2019 +0200
+++ b/cubicweb/crypto.py Wed Jun 19 15:44:17 2019 +0200
@@ -21,7 +21,7 @@
from base64 import b64encode, b64decode
import pickle
-from Crypto.Cipher import Blowfish
+from Cryptodome.Cipher import Blowfish
_CYPHERERS = {}
--- a/setup.py Mon Jun 17 11:12:03 2019 +0200
+++ b/setup.py Wed Jun 19 15:44:17 2019 +0200
@@ -87,7 +87,7 @@
'Pillow',
],
'crypto': [
- 'pycryptodome',
+ 'pycryptodomex',
],
'ext': [
'docutils >= 0.6',