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
diff --git a/pySim/ota.py b/pySim/ota.py
index 83303a6..5955a08 100644
--- a/pySim/ota.py
+++ b/pySim/ota.py
@@ -150,8 +150,8 @@
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))
diff --git a/pySim/utils.py b/pySim/utils.py
index 6b8ee37..537014f 100644
--- a/pySim/utils.py
+++ b/pySim/utils.py
@@ -616,9 +616,9 @@
"""
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