Today I saw PySNMP installing pycryptodomex. The x
in that name looked suspicious and surprising.
I tried to track it down, but it looks like both pycryptodome and pycryptodomex are owned by the same account and point back to the same Github repository.
Especially because a cryptography library is a core security feature, I'm suspicious of the duplication.
What's the purpose of this duplication? Could I have discovered this information from open sources?
It's the same code, just different names.
pycryptodome
has some association to pyCrypto and can be considered a drop in replacement when migrating from PyCrypto to PyCryptodome.
pycryptodomex
is a standalone version of PyCryptodome with a different naming convention; instead of the package Crypto
, you have to use Cryptodome
. In the case that PyCrypto is required for legacy purposes, pycryptodome
should be used.
Per the repository:
The installation procedure depends on the package you want the library in. PyCryptodome can be used as:
an almost drop-in replacement for the old PyCrypto library. You install it with:
pip install pycryptodome
In this case, all modules are installed under the Crypto package.
One must avoid having both PyCrypto and PyCryptodome installed at the same time, as they will interfere with each other.
This option is therefore recommended only when you are sure that the whole application is deployed in a virtualenv.
a library independent of the old PyCrypto. You install it with:
pip install pycryptodomex
In this case, all modules are installed under the Cryptodome package. PyCrypto and PyCryptodomex can coexist.