Switch from pycryptodome to pycryptodomex

So for some weird historical reasons, the same python module is
available as pycryptodome (Crypto.* namespace) and pycryptodomex
(Cryptodome.* namespace).  See the following information on the project
homepage: https://www.pycryptodome.org/src/installation

To make things extra-weird, Debian choose to package pycryptodomex as
python3-pycryptodome
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886291).

So in order to support both Debian-packaged and differently-installed
packages, let's switch to pycryotodomex on all platforms/installers.

Change-Id: I04daed01f51f9702595ef9f9e0d7fcdf1e4adb62
This commit is contained in:
Harald Welte 2023-05-31 20:47:55 +02:00
parent 219a5f369c
commit d75fa3f7c9
5 changed files with 8 additions and 7 deletions

View File

@ -46,7 +46,7 @@ Please install the following dependencies:
- termcolor
- colorlog
- packaging
- pycryptodome
- pycryptodomex
Example for Debian:
```sh
@ -54,6 +54,7 @@ sudo apt-get install --no-install-recommends \
pcscd libpcsclite-dev \
python3 \
python3-setuptools \
python3-pycryptodome \
python3-pyscard \
python3-pip
pip3 install --user -r requirements.txt

View File

@ -150,8 +150,8 @@ class OtaDialect(abc.ABC):
pass
from Crypto.Cipher import DES, DES3, AES
from Crypto.Hash import CMAC
from Cryptodome.Cipher import DES, DES3, AES
from Cryptodome.Hash import CMAC
class OtaAlgo(abc.ABC):
iv = property(lambda self: bytes([0] * self.blocksize))

View File

@ -616,9 +616,9 @@ def derive_milenage_opc(ki_hex: Hexstr, op_hex: Hexstr) -> Hexstr:
"""
Run the milenage algorithm to calculate OPC from Ki and OP
"""
from Crypto.Cipher import AES
from Cryptodome.Cipher import AES
# pylint: disable=no-name-in-module
from Crypto.Util.strxor import strxor
from Cryptodome.Util.strxor import strxor
from pySim.utils import b2h
# We pass in hex string and now need to work on bytes

View File

@ -9,5 +9,5 @@ gsm0338
pyyaml>=5.1
termcolor
colorlog
pycryptodome
pycryptodomex
packaging

View File

@ -20,7 +20,7 @@ setup(
"pyyaml >= 5.1",
"termcolor",
"colorlog",
"pycryptodome",
"pycryptodomex",
"packaging",
],
scripts=[