What is pycryptodomex and how does it differ from pycryptodome?
Asked Answered
I

1

27

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?

Isolation answered 8/1, 2018 at 17:36 Comment(2)
The only reason I could see is to provide back compatibility when renaming a project, so as to not break everyone who used it at the old name.Lanthanide
The pycryptodome page says "Check the pycryptodomex project for the equivalent library that works under the Cryptodome package" and the pycryptodomex page says "Check the pycryptodome project for the equivalent library that works under the Crypto package"Angary
O
40

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:

  1. 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.

  2. 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.

Oak answered 9/1, 2018 at 20:6 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.