From c4d90bf4ea0c5b7a016028ed994de19638d3113b Mon Sep 17 00:00:00 2001 From: Determinant Date: Tue, 17 Nov 2020 20:04:09 -0500 Subject: support saving as a keystore file --- README.rst | 25 +- frozen_deps/Crypto/Cipher/AES.py | 115 -- frozen_deps/Crypto/Cipher/ARC2.py | 130 -- frozen_deps/Crypto/Cipher/ARC4.py | 120 -- frozen_deps/Crypto/Cipher/Blowfish.py | 121 -- frozen_deps/Crypto/Cipher/CAST.py | 123 -- frozen_deps/Crypto/Cipher/DES.py | 118 -- frozen_deps/Crypto/Cipher/DES3.py | 133 -- frozen_deps/Crypto/Cipher/PKCS1_OAEP.py | 255 ---- frozen_deps/Crypto/Cipher/PKCS1_v1_5.py | 226 --- frozen_deps/Crypto/Cipher/XOR.py | 86 -- .../Cipher/_AES.cpython-38-x86_64-linux-gnu.so | Bin 43640 -> 0 bytes .../Cipher/_ARC2.cpython-38-x86_64-linux-gnu.so | Bin 26904 -> 0 bytes .../Cipher/_ARC4.cpython-38-x86_64-linux-gnu.so | Bin 18064 -> 0 bytes .../_Blowfish.cpython-38-x86_64-linux-gnu.so | Bin 35368 -> 0 bytes .../Cipher/_CAST.cpython-38-x86_64-linux-gnu.so | Bin 35320 -> 0 bytes .../Cipher/_DES.cpython-38-x86_64-linux-gnu.so | Bin 68560 -> 0 bytes .../Cipher/_DES3.cpython-38-x86_64-linux-gnu.so | Bin 68560 -> 0 bytes .../Cipher/_XOR.cpython-38-x86_64-linux-gnu.so | Bin 18096 -> 0 bytes frozen_deps/Crypto/Cipher/__init__.py | 83 -- frozen_deps/Crypto/Cipher/blockalgo.py | 296 ---- frozen_deps/Crypto/Hash/HMAC.py | 212 --- frozen_deps/Crypto/Hash/MD2.py | 91 -- frozen_deps/Crypto/Hash/MD4.py | 91 -- frozen_deps/Crypto/Hash/MD5.py | 97 -- frozen_deps/Crypto/Hash/RIPEMD.py | 94 -- frozen_deps/Crypto/Hash/SHA.py | 98 -- frozen_deps/Crypto/Hash/SHA224.py | 95 -- frozen_deps/Crypto/Hash/SHA256.py | 95 -- frozen_deps/Crypto/Hash/SHA384.py | 96 -- frozen_deps/Crypto/Hash/SHA512.py | 95 -- .../Hash/_MD2.cpython-38-x86_64-linux-gnu.so | Bin 18464 -> 0 bytes .../Hash/_MD4.cpython-38-x86_64-linux-gnu.so | Bin 18552 -> 0 bytes .../Hash/_RIPEMD160.cpython-38-x86_64-linux-gnu.so | Bin 22888 -> 0 bytes .../Hash/_SHA224.cpython-38-x86_64-linux-gnu.so | Bin 18496 -> 0 bytes .../Hash/_SHA256.cpython-38-x86_64-linux-gnu.so | Bin 18496 -> 0 bytes .../Hash/_SHA384.cpython-38-x86_64-linux-gnu.so | Bin 22592 -> 0 bytes .../Hash/_SHA512.cpython-38-x86_64-linux-gnu.so | Bin 22592 -> 0 bytes frozen_deps/Crypto/Hash/__init__.py | 56 - frozen_deps/Crypto/Hash/hashalgo.py | 116 -- frozen_deps/Crypto/Protocol/AllOrNothing.py | 320 ----- frozen_deps/Crypto/Protocol/Chaffing.py | 245 ---- frozen_deps/Crypto/Protocol/KDF.py | 123 -- frozen_deps/Crypto/Protocol/__init__.py | 41 - frozen_deps/Crypto/PublicKey/DSA.py | 379 ----- frozen_deps/Crypto/PublicKey/ElGamal.py | 373 ----- frozen_deps/Crypto/PublicKey/RSA.py | 719 ---------- frozen_deps/Crypto/PublicKey/_DSA.py | 115 -- frozen_deps/Crypto/PublicKey/_RSA.py | 81 -- frozen_deps/Crypto/PublicKey/__init__.py | 41 - .../_fastmath.cpython-38-x86_64-linux-gnu.so | Bin 78864 -> 0 bytes frozen_deps/Crypto/PublicKey/_slowmath.py | 187 --- frozen_deps/Crypto/PublicKey/pubkey.py | 240 ---- .../Crypto/Random/Fortuna/FortunaAccumulator.py | 171 --- .../Crypto/Random/Fortuna/FortunaGenerator.py | 132 -- frozen_deps/Crypto/Random/Fortuna/SHAd256.py | 98 -- frozen_deps/Crypto/Random/Fortuna/__init__.py | 0 frozen_deps/Crypto/Random/OSRNG/__init__.py | 40 - frozen_deps/Crypto/Random/OSRNG/fallback.py | 46 - frozen_deps/Crypto/Random/OSRNG/posix.py | 86 -- frozen_deps/Crypto/Random/OSRNG/rng_base.py | 88 -- frozen_deps/Crypto/Random/_UserFriendlyRNG.py | 230 --- frozen_deps/Crypto/Random/__init__.py | 43 - frozen_deps/Crypto/Random/random.py | 142 -- frozen_deps/Crypto/Signature/PKCS1_PSS.py | 355 ----- frozen_deps/Crypto/Signature/PKCS1_v1_5.py | 236 ---- frozen_deps/Crypto/Signature/__init__.py | 31 - frozen_deps/Crypto/Util/Counter.py | 127 -- frozen_deps/Crypto/Util/RFC1751.py | 365 ----- frozen_deps/Crypto/Util/__init__.py | 37 - .../Util/_counter.cpython-38-x86_64-linux-gnu.so | Bin 22856 -> 0 bytes frozen_deps/Crypto/Util/_number_new.py | 119 -- frozen_deps/Crypto/Util/asn1.py | 286 ---- frozen_deps/Crypto/Util/number.py | 1456 ------------------- frozen_deps/Crypto/Util/py3compat.py | 107 -- frozen_deps/Crypto/Util/randpool.py | 82 -- .../Util/strxor.cpython-38-x86_64-linux-gnu.so | Bin 16784 -> 0 bytes frozen_deps/Crypto/Util/winrandom.py | 28 - frozen_deps/Crypto/__init__.py | 51 - frozen_deps/Crypto/pct_warnings.py | 60 - frozen_deps/Cryptodome/Cipher/AES.py | 250 ++++ frozen_deps/Cryptodome/Cipher/AES.pyi | 47 + frozen_deps/Cryptodome/Cipher/ARC2.py | 175 +++ frozen_deps/Cryptodome/Cipher/ARC2.pyi | 35 + frozen_deps/Cryptodome/Cipher/ARC4.py | 137 ++ frozen_deps/Cryptodome/Cipher/ARC4.pyi | 16 + frozen_deps/Cryptodome/Cipher/Blowfish.py | 159 +++ frozen_deps/Cryptodome/Cipher/Blowfish.pyi | 35 + frozen_deps/Cryptodome/Cipher/CAST.py | 159 +++ frozen_deps/Cryptodome/Cipher/CAST.pyi | 35 + frozen_deps/Cryptodome/Cipher/ChaCha20.py | 286 ++++ frozen_deps/Cryptodome/Cipher/ChaCha20.pyi | 25 + frozen_deps/Cryptodome/Cipher/ChaCha20_Poly1305.py | 336 +++++ .../Cryptodome/Cipher/ChaCha20_Poly1305.pyi | 28 + frozen_deps/Cryptodome/Cipher/DES.py | 158 +++ frozen_deps/Cryptodome/Cipher/DES.pyi | 35 + frozen_deps/Cryptodome/Cipher/DES3.py | 187 +++ frozen_deps/Cryptodome/Cipher/DES3.pyi | 37 + frozen_deps/Cryptodome/Cipher/PKCS1_OAEP.py | 239 ++++ frozen_deps/Cryptodome/Cipher/PKCS1_OAEP.pyi | 35 + frozen_deps/Cryptodome/Cipher/PKCS1_v1_5.py | 199 +++ frozen_deps/Cryptodome/Cipher/PKCS1_v1_5.pyi | 17 + frozen_deps/Cryptodome/Cipher/Salsa20.py | 167 +++ frozen_deps/Cryptodome/Cipher/Salsa20.pyi | 27 + .../Cipher/_ARC4.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 14354 bytes frozen_deps/Cryptodome/Cipher/_EKSBlowfish.py | 131 ++ frozen_deps/Cryptodome/Cipher/_EKSBlowfish.pyi | 15 + .../Cipher/_Salsa20.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 21734 bytes frozen_deps/Cryptodome/Cipher/__init__.py | 79 ++ frozen_deps/Cryptodome/Cipher/__init__.pyi | 0 .../_chacha20.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 25741 bytes frozen_deps/Cryptodome/Cipher/_mode_cbc.py | 293 ++++ frozen_deps/Cryptodome/Cipher/_mode_cbc.pyi | 25 + frozen_deps/Cryptodome/Cipher/_mode_ccm.py | 650 +++++++++ frozen_deps/Cryptodome/Cipher/_mode_ccm.pyi | 47 + frozen_deps/Cryptodome/Cipher/_mode_cfb.py | 293 ++++ frozen_deps/Cryptodome/Cipher/_mode_cfb.pyi | 26 + frozen_deps/Cryptodome/Cipher/_mode_ctr.py | 393 ++++++ frozen_deps/Cryptodome/Cipher/_mode_ctr.pyi | 27 + frozen_deps/Cryptodome/Cipher/_mode_eax.py | 408 ++++++ frozen_deps/Cryptodome/Cipher/_mode_eax.pyi | 45 + frozen_deps/Cryptodome/Cipher/_mode_ecb.py | 218 +++ frozen_deps/Cryptodome/Cipher/_mode_ecb.pyi | 19 + frozen_deps/Cryptodome/Cipher/_mode_gcm.py | 620 +++++++++ frozen_deps/Cryptodome/Cipher/_mode_gcm.pyi | 45 + frozen_deps/Cryptodome/Cipher/_mode_ocb.py | 525 +++++++ frozen_deps/Cryptodome/Cipher/_mode_ocb.pyi | 36 + frozen_deps/Cryptodome/Cipher/_mode_ofb.py | 282 ++++ frozen_deps/Cryptodome/Cipher/_mode_ofb.pyi | 25 + frozen_deps/Cryptodome/Cipher/_mode_openpgp.py | 206 +++ frozen_deps/Cryptodome/Cipher/_mode_openpgp.pyi | 20 + frozen_deps/Cryptodome/Cipher/_mode_siv.py | 392 ++++++ frozen_deps/Cryptodome/Cipher/_mode_siv.pyi | 38 + .../Cipher/_raw_aes.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 54112 bytes .../_raw_aesni.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 52331 bytes .../_raw_arc2.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 18917 bytes .../_raw_blowfish.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 26938 bytes .../_raw_cast.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 44422 bytes .../Cipher/_raw_cbc.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 17215 bytes .../Cipher/_raw_cfb.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 22696 bytes .../Cipher/_raw_ctr.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 23249 bytes .../Cipher/_raw_des.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 62525 bytes .../_raw_des3.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 63370 bytes .../Cipher/_raw_ecb.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 10893 bytes ..._raw_eksblowfish.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 58926 bytes .../Cipher/_raw_ocb.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 30281 bytes .../Cipher/_raw_ofb.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 14743 bytes frozen_deps/Cryptodome/Hash/BLAKE2b.py | 247 ++++ frozen_deps/Cryptodome/Hash/BLAKE2b.pyi | 31 + frozen_deps/Cryptodome/Hash/BLAKE2s.py | 247 ++++ frozen_deps/Cryptodome/Hash/BLAKE2s.pyi | 26 + frozen_deps/Cryptodome/Hash/CMAC.py | 305 ++++ frozen_deps/Cryptodome/Hash/CMAC.pyi | 30 + frozen_deps/Cryptodome/Hash/HMAC.py | 213 +++ frozen_deps/Cryptodome/Hash/HMAC.pyi | 25 + frozen_deps/Cryptodome/Hash/MD2.py | 166 +++ frozen_deps/Cryptodome/Hash/MD2.pyi | 19 + frozen_deps/Cryptodome/Hash/MD4.py | 185 +++ frozen_deps/Cryptodome/Hash/MD4.pyi | 19 + frozen_deps/Cryptodome/Hash/MD5.py | 184 +++ frozen_deps/Cryptodome/Hash/MD5.pyi | 19 + frozen_deps/Cryptodome/Hash/Poly1305.py | 217 +++ frozen_deps/Cryptodome/Hash/Poly1305.pyi | 24 + frozen_deps/Cryptodome/Hash/RIPEMD.py | 26 + frozen_deps/Cryptodome/Hash/RIPEMD.pyi | 3 + frozen_deps/Cryptodome/Hash/RIPEMD160.py | 169 +++ frozen_deps/Cryptodome/Hash/RIPEMD160.pyi | 19 + frozen_deps/Cryptodome/Hash/SHA.py | 24 + frozen_deps/Cryptodome/Hash/SHA.pyi | 4 + frozen_deps/Cryptodome/Hash/SHA1.py | 185 +++ frozen_deps/Cryptodome/Hash/SHA1.pyi | 19 + frozen_deps/Cryptodome/Hash/SHA224.py | 186 +++ frozen_deps/Cryptodome/Hash/SHA224.pyi | 19 + frozen_deps/Cryptodome/Hash/SHA256.py | 185 +++ frozen_deps/Cryptodome/Hash/SHA256.pyi | 18 + frozen_deps/Cryptodome/Hash/SHA384.py | 186 +++ frozen_deps/Cryptodome/Hash/SHA384.pyi | 19 + frozen_deps/Cryptodome/Hash/SHA3_224.py | 147 ++ frozen_deps/Cryptodome/Hash/SHA3_224.pyi | 16 + frozen_deps/Cryptodome/Hash/SHA3_256.py | 147 ++ frozen_deps/Cryptodome/Hash/SHA3_256.pyi | 16 + frozen_deps/Cryptodome/Hash/SHA3_384.py | 147 ++ frozen_deps/Cryptodome/Hash/SHA3_384.pyi | 16 + frozen_deps/Cryptodome/Hash/SHA3_512.py | 148 ++ frozen_deps/Cryptodome/Hash/SHA3_512.pyi | 16 + frozen_deps/Cryptodome/Hash/SHA512.py | 204 +++ frozen_deps/Cryptodome/Hash/SHA512.pyi | 22 + frozen_deps/Cryptodome/Hash/SHAKE128.py | 127 ++ frozen_deps/Cryptodome/Hash/SHAKE128.pyi | 13 + frozen_deps/Cryptodome/Hash/SHAKE256.py | 127 ++ frozen_deps/Cryptodome/Hash/SHAKE256.pyi | 13 + .../Hash/_BLAKE2b.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 20015 bytes .../Hash/_BLAKE2s.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 20807 bytes .../Hash/_MD2.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 16919 bytes .../Hash/_MD4.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 19072 bytes .../Hash/_MD5.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 25434 bytes .../Hash/_RIPEMD160.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 27226 bytes .../Hash/_SHA1.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 84273 bytes .../Hash/_SHA224.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 35822 bytes .../Hash/_SHA256.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 35806 bytes .../Hash/_SHA384.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 41869 bytes .../Hash/_SHA512.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 41967 bytes frozen_deps/Cryptodome/Hash/__init__.py | 22 + frozen_deps/Cryptodome/Hash/__init__.pyi | 0 .../_ghash_clmul.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 34203 bytes .../_ghash_portable.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 18711 bytes .../Hash/_keccak.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 26749 bytes .../Hash/_poly1305.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 25921 bytes frozen_deps/Cryptodome/Hash/keccak.py | 173 +++ frozen_deps/Cryptodome/Hash/keccak.pyi | 23 + frozen_deps/Cryptodome/IO/PEM.py | 189 +++ frozen_deps/Cryptodome/IO/PEM.pyi | 10 + frozen_deps/Cryptodome/IO/PKCS8.py | 231 +++ frozen_deps/Cryptodome/IO/PKCS8.pyi | 14 + frozen_deps/Cryptodome/IO/_PBES.py | 435 ++++++ frozen_deps/Cryptodome/IO/_PBES.pyi | 19 + frozen_deps/Cryptodome/IO/__init__.py | 31 + frozen_deps/Cryptodome/Math/Numbers.py | 42 + frozen_deps/Cryptodome/Math/Numbers.pyi | 4 + frozen_deps/Cryptodome/Math/Primality.py | 368 +++++ frozen_deps/Cryptodome/Math/Primality.pyi | 18 + frozen_deps/Cryptodome/Math/_IntegerBase.py | 392 ++++++ frozen_deps/Cryptodome/Math/_IntegerBase.pyi | 61 + frozen_deps/Cryptodome/Math/_IntegerCustom.py | 111 ++ frozen_deps/Cryptodome/Math/_IntegerCustom.pyi | 8 + frozen_deps/Cryptodome/Math/_IntegerGMP.py | 708 ++++++++++ frozen_deps/Cryptodome/Math/_IntegerGMP.pyi | 3 + frozen_deps/Cryptodome/Math/_IntegerNative.py | 380 +++++ frozen_deps/Cryptodome/Math/_IntegerNative.pyi | 3 + frozen_deps/Cryptodome/Math/__init__.py | 0 .../Math/_modexp.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 207274 bytes frozen_deps/Cryptodome/Protocol/KDF.py | 574 ++++++++ frozen_deps/Cryptodome/Protocol/KDF.pyi | 24 + frozen_deps/Cryptodome/Protocol/SecretSharing.py | 278 ++++ frozen_deps/Cryptodome/Protocol/SecretSharing.pyi | 22 + frozen_deps/Cryptodome/Protocol/__init__.py | 31 + frozen_deps/Cryptodome/Protocol/__init__.pyi | 1 + .../_scrypt.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 16510 bytes frozen_deps/Cryptodome/PublicKey/DSA.py | 679 +++++++++ frozen_deps/Cryptodome/PublicKey/DSA.pyi | 30 + frozen_deps/Cryptodome/PublicKey/ECC.py | 1184 ++++++++++++++++ frozen_deps/Cryptodome/PublicKey/ECC.pyi | 62 + frozen_deps/Cryptodome/PublicKey/ElGamal.py | 286 ++++ frozen_deps/Cryptodome/PublicKey/ElGamal.pyi | 18 + frozen_deps/Cryptodome/PublicKey/RSA.py | 796 +++++++++++ frozen_deps/Cryptodome/PublicKey/RSA.pyi | 50 + frozen_deps/Cryptodome/PublicKey/__init__.py | 95 ++ frozen_deps/Cryptodome/PublicKey/__init__.pyi | 0 .../_ec_ws.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 1000375 bytes frozen_deps/Cryptodome/PublicKey/_openssh.py | 135 ++ frozen_deps/Cryptodome/PublicKey/_openssh.pyi | 7 + frozen_deps/Cryptodome/Random/__init__.py | 57 + frozen_deps/Cryptodome/Random/__init__.pyi | 19 + frozen_deps/Cryptodome/Random/random.py | 138 ++ frozen_deps/Cryptodome/Random/random.pyi | 20 + frozen_deps/Cryptodome/Signature/DSS.py | 413 ++++++ frozen_deps/Cryptodome/Signature/DSS.pyi | 27 + frozen_deps/Cryptodome/Signature/PKCS1_PSS.py | 55 + frozen_deps/Cryptodome/Signature/PKCS1_PSS.pyi | 7 + frozen_deps/Cryptodome/Signature/PKCS1_v1_5.py | 53 + frozen_deps/Cryptodome/Signature/PKCS1_v1_5.pyi | 6 + frozen_deps/Cryptodome/Signature/__init__.py | 36 + frozen_deps/Cryptodome/Signature/pkcs1_15.py | 222 +++ frozen_deps/Cryptodome/Signature/pkcs1_15.pyi | 17 + frozen_deps/Cryptodome/Signature/pss.py | 386 +++++ frozen_deps/Cryptodome/Signature/pss.pyi | 30 + frozen_deps/Cryptodome/Util/Counter.py | 70 + frozen_deps/Cryptodome/Util/Counter.pyi | 5 + frozen_deps/Cryptodome/Util/Padding.py | 106 ++ frozen_deps/Cryptodome/Util/Padding.pyi | 6 + frozen_deps/Cryptodome/Util/RFC1751.py | 386 +++++ frozen_deps/Cryptodome/Util/RFC1751.pyi | 7 + frozen_deps/Cryptodome/Util/__init__.py | 41 + frozen_deps/Cryptodome/Util/_cpu_features.py | 46 + frozen_deps/Cryptodome/Util/_cpu_features.pyi | 2 + .../Util/_cpuid_c.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 10899 bytes frozen_deps/Cryptodome/Util/_file_system.py | 54 + frozen_deps/Cryptodome/Util/_file_system.pyi | 4 + frozen_deps/Cryptodome/Util/_raw_api.py | 327 +++++ frozen_deps/Cryptodome/Util/_raw_api.pyi | 27 + .../Util/_strxor.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 13213 bytes frozen_deps/Cryptodome/Util/asn1.py | 940 +++++++++++++ frozen_deps/Cryptodome/Util/asn1.pyi | 74 + frozen_deps/Cryptodome/Util/number.py | 1469 ++++++++++++++++++++ frozen_deps/Cryptodome/Util/number.pyi | 19 + frozen_deps/Cryptodome/Util/py3compat.py | 164 +++ frozen_deps/Cryptodome/Util/py3compat.pyi | 35 + frozen_deps/Cryptodome/Util/strxor.py | 137 ++ frozen_deps/Cryptodome/Util/strxor.pyi | 6 + frozen_deps/Cryptodome/__init__.py | 6 + frozen_deps/Cryptodome/__init__.pyi | 4 + frozen_deps/Cryptodome/py.typed | 0 frozen_deps/bin/keytree.py | 46 +- frozen_deps/keytree.py-0.2.dist-info/METADATA | 2 +- frozen_deps/keytree.py-0.2.dist-info/RECORD | 4 +- frozen_deps/pycrypto-2.6.1.dist-info/INSTALLER | 1 - frozen_deps/pycrypto-2.6.1.dist-info/METADATA | 22 - frozen_deps/pycrypto-2.6.1.dist-info/RECORD | 261 ---- frozen_deps/pycrypto-2.6.1.dist-info/WHEEL | 5 - frozen_deps/pycrypto-2.6.1.dist-info/top_level.txt | 1 - .../pycryptodomex-3.9.9.dist-info/AUTHORS.rst | 49 + .../pycryptodomex-3.9.9.dist-info/INSTALLER | 1 + .../pycryptodomex-3.9.9.dist-info/LICENSE.rst | 274 ++++ frozen_deps/pycryptodomex-3.9.9.dist-info/METADATA | 84 ++ frozen_deps/pycryptodomex-3.9.9.dist-info/RECORD | 794 +++++++++++ frozen_deps/pycryptodomex-3.9.9.dist-info/WHEEL | 5 + .../pycryptodomex-3.9.9.dist-info/top_level.txt | 1 + keytree.py | 46 +- setup.py | 2 +- 309 files changed, 26106 insertions(+), 10637 deletions(-) delete mode 100644 frozen_deps/Crypto/Cipher/AES.py delete mode 100644 frozen_deps/Crypto/Cipher/ARC2.py delete mode 100644 frozen_deps/Crypto/Cipher/ARC4.py delete mode 100644 frozen_deps/Crypto/Cipher/Blowfish.py delete mode 100644 frozen_deps/Crypto/Cipher/CAST.py delete mode 100644 frozen_deps/Crypto/Cipher/DES.py delete mode 100644 frozen_deps/Crypto/Cipher/DES3.py delete mode 100644 frozen_deps/Crypto/Cipher/PKCS1_OAEP.py delete mode 100644 frozen_deps/Crypto/Cipher/PKCS1_v1_5.py delete mode 100644 frozen_deps/Crypto/Cipher/XOR.py delete mode 100755 frozen_deps/Crypto/Cipher/_AES.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_ARC2.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_ARC4.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_Blowfish.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_CAST.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_DES.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_DES3.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Cipher/_XOR.cpython-38-x86_64-linux-gnu.so delete mode 100644 frozen_deps/Crypto/Cipher/__init__.py delete mode 100644 frozen_deps/Crypto/Cipher/blockalgo.py delete mode 100644 frozen_deps/Crypto/Hash/HMAC.py delete mode 100644 frozen_deps/Crypto/Hash/MD2.py delete mode 100644 frozen_deps/Crypto/Hash/MD4.py delete mode 100644 frozen_deps/Crypto/Hash/MD5.py delete mode 100644 frozen_deps/Crypto/Hash/RIPEMD.py delete mode 100644 frozen_deps/Crypto/Hash/SHA.py delete mode 100644 frozen_deps/Crypto/Hash/SHA224.py delete mode 100644 frozen_deps/Crypto/Hash/SHA256.py delete mode 100644 frozen_deps/Crypto/Hash/SHA384.py delete mode 100644 frozen_deps/Crypto/Hash/SHA512.py delete mode 100755 frozen_deps/Crypto/Hash/_MD2.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Hash/_MD4.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Hash/_RIPEMD160.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Hash/_SHA224.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Hash/_SHA256.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Hash/_SHA384.cpython-38-x86_64-linux-gnu.so delete mode 100755 frozen_deps/Crypto/Hash/_SHA512.cpython-38-x86_64-linux-gnu.so delete mode 100644 frozen_deps/Crypto/Hash/__init__.py delete mode 100644 frozen_deps/Crypto/Hash/hashalgo.py delete mode 100644 frozen_deps/Crypto/Protocol/AllOrNothing.py delete mode 100644 frozen_deps/Crypto/Protocol/Chaffing.py delete mode 100644 frozen_deps/Crypto/Protocol/KDF.py delete mode 100644 frozen_deps/Crypto/Protocol/__init__.py delete mode 100644 frozen_deps/Crypto/PublicKey/DSA.py delete mode 100644 frozen_deps/Crypto/PublicKey/ElGamal.py delete mode 100644 frozen_deps/Crypto/PublicKey/RSA.py delete mode 100644 frozen_deps/Crypto/PublicKey/_DSA.py delete mode 100644 frozen_deps/Crypto/PublicKey/_RSA.py delete mode 100644 frozen_deps/Crypto/PublicKey/__init__.py delete mode 100755 frozen_deps/Crypto/PublicKey/_fastmath.cpython-38-x86_64-linux-gnu.so delete mode 100644 frozen_deps/Crypto/PublicKey/_slowmath.py delete mode 100644 frozen_deps/Crypto/PublicKey/pubkey.py delete mode 100644 frozen_deps/Crypto/Random/Fortuna/FortunaAccumulator.py delete mode 100644 frozen_deps/Crypto/Random/Fortuna/FortunaGenerator.py delete mode 100644 frozen_deps/Crypto/Random/Fortuna/SHAd256.py delete mode 100644 frozen_deps/Crypto/Random/Fortuna/__init__.py delete mode 100644 frozen_deps/Crypto/Random/OSRNG/__init__.py delete mode 100644 frozen_deps/Crypto/Random/OSRNG/fallback.py delete mode 100644 frozen_deps/Crypto/Random/OSRNG/posix.py delete mode 100644 frozen_deps/Crypto/Random/OSRNG/rng_base.py delete mode 100644 frozen_deps/Crypto/Random/_UserFriendlyRNG.py delete mode 100644 frozen_deps/Crypto/Random/__init__.py delete mode 100644 frozen_deps/Crypto/Random/random.py delete mode 100644 frozen_deps/Crypto/Signature/PKCS1_PSS.py delete mode 100644 frozen_deps/Crypto/Signature/PKCS1_v1_5.py delete mode 100644 frozen_deps/Crypto/Signature/__init__.py delete mode 100644 frozen_deps/Crypto/Util/Counter.py delete mode 100644 frozen_deps/Crypto/Util/RFC1751.py delete mode 100644 frozen_deps/Crypto/Util/__init__.py delete mode 100755 frozen_deps/Crypto/Util/_counter.cpython-38-x86_64-linux-gnu.so delete mode 100644 frozen_deps/Crypto/Util/_number_new.py delete mode 100644 frozen_deps/Crypto/Util/asn1.py delete mode 100644 frozen_deps/Crypto/Util/number.py delete mode 100644 frozen_deps/Crypto/Util/py3compat.py delete mode 100644 frozen_deps/Crypto/Util/randpool.py delete mode 100755 frozen_deps/Crypto/Util/strxor.cpython-38-x86_64-linux-gnu.so delete mode 100644 frozen_deps/Crypto/Util/winrandom.py delete mode 100644 frozen_deps/Crypto/__init__.py delete mode 100644 frozen_deps/Crypto/pct_warnings.py create mode 100644 frozen_deps/Cryptodome/Cipher/AES.py create mode 100644 frozen_deps/Cryptodome/Cipher/AES.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/ARC2.py create mode 100644 frozen_deps/Cryptodome/Cipher/ARC2.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/ARC4.py create mode 100644 frozen_deps/Cryptodome/Cipher/ARC4.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/Blowfish.py create mode 100644 frozen_deps/Cryptodome/Cipher/Blowfish.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/CAST.py create mode 100644 frozen_deps/Cryptodome/Cipher/CAST.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/ChaCha20.py create mode 100644 frozen_deps/Cryptodome/Cipher/ChaCha20.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/ChaCha20_Poly1305.py create mode 100644 frozen_deps/Cryptodome/Cipher/ChaCha20_Poly1305.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/DES.py create mode 100644 frozen_deps/Cryptodome/Cipher/DES.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/DES3.py create mode 100644 frozen_deps/Cryptodome/Cipher/DES3.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/PKCS1_OAEP.py create mode 100644 frozen_deps/Cryptodome/Cipher/PKCS1_OAEP.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/PKCS1_v1_5.py create mode 100644 frozen_deps/Cryptodome/Cipher/PKCS1_v1_5.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/Salsa20.py create mode 100644 frozen_deps/Cryptodome/Cipher/Salsa20.pyi create mode 100755 frozen_deps/Cryptodome/Cipher/_ARC4.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Cipher/_EKSBlowfish.py create mode 100644 frozen_deps/Cryptodome/Cipher/_EKSBlowfish.pyi create mode 100755 frozen_deps/Cryptodome/Cipher/_Salsa20.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Cipher/__init__.py create mode 100644 frozen_deps/Cryptodome/Cipher/__init__.pyi create mode 100755 frozen_deps/Cryptodome/Cipher/_chacha20.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_cbc.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_cbc.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ccm.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ccm.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_cfb.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_cfb.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ctr.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ctr.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_eax.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_eax.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ecb.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ecb.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_gcm.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_gcm.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ocb.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ocb.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ofb.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_ofb.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_openpgp.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_openpgp.pyi create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_siv.py create mode 100644 frozen_deps/Cryptodome/Cipher/_mode_siv.pyi create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_aes.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_aesni.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_arc2.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_blowfish.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_cast.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_cbc.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_cfb.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_ctr.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_des.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_des3.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_ecb.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_eksblowfish.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_ocb.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Cipher/_raw_ofb.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Hash/BLAKE2b.py create mode 100644 frozen_deps/Cryptodome/Hash/BLAKE2b.pyi create mode 100644 frozen_deps/Cryptodome/Hash/BLAKE2s.py create mode 100644 frozen_deps/Cryptodome/Hash/BLAKE2s.pyi create mode 100644 frozen_deps/Cryptodome/Hash/CMAC.py create mode 100644 frozen_deps/Cryptodome/Hash/CMAC.pyi create mode 100644 frozen_deps/Cryptodome/Hash/HMAC.py create mode 100644 frozen_deps/Cryptodome/Hash/HMAC.pyi create mode 100644 frozen_deps/Cryptodome/Hash/MD2.py create mode 100644 frozen_deps/Cryptodome/Hash/MD2.pyi create mode 100644 frozen_deps/Cryptodome/Hash/MD4.py create mode 100644 frozen_deps/Cryptodome/Hash/MD4.pyi create mode 100644 frozen_deps/Cryptodome/Hash/MD5.py create mode 100644 frozen_deps/Cryptodome/Hash/MD5.pyi create mode 100644 frozen_deps/Cryptodome/Hash/Poly1305.py create mode 100644 frozen_deps/Cryptodome/Hash/Poly1305.pyi create mode 100644 frozen_deps/Cryptodome/Hash/RIPEMD.py create mode 100644 frozen_deps/Cryptodome/Hash/RIPEMD.pyi create mode 100644 frozen_deps/Cryptodome/Hash/RIPEMD160.py create mode 100644 frozen_deps/Cryptodome/Hash/RIPEMD160.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA1.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA1.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA224.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA224.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA256.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA256.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA384.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA384.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_224.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_224.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_256.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_256.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_384.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_384.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_512.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA3_512.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHA512.py create mode 100644 frozen_deps/Cryptodome/Hash/SHA512.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHAKE128.py create mode 100644 frozen_deps/Cryptodome/Hash/SHAKE128.pyi create mode 100644 frozen_deps/Cryptodome/Hash/SHAKE256.py create mode 100644 frozen_deps/Cryptodome/Hash/SHAKE256.pyi create mode 100755 frozen_deps/Cryptodome/Hash/_BLAKE2b.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_BLAKE2s.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_MD2.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_MD4.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_MD5.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_RIPEMD160.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_SHA1.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_SHA224.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_SHA256.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_SHA384.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_SHA512.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Hash/__init__.py create mode 100644 frozen_deps/Cryptodome/Hash/__init__.pyi create mode 100755 frozen_deps/Cryptodome/Hash/_ghash_clmul.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_ghash_portable.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_keccak.cpython-38-x86_64-linux-gnu.so create mode 100755 frozen_deps/Cryptodome/Hash/_poly1305.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Hash/keccak.py create mode 100644 frozen_deps/Cryptodome/Hash/keccak.pyi create mode 100644 frozen_deps/Cryptodome/IO/PEM.py create mode 100644 frozen_deps/Cryptodome/IO/PEM.pyi create mode 100644 frozen_deps/Cryptodome/IO/PKCS8.py create mode 100644 frozen_deps/Cryptodome/IO/PKCS8.pyi create mode 100644 frozen_deps/Cryptodome/IO/_PBES.py create mode 100644 frozen_deps/Cryptodome/IO/_PBES.pyi create mode 100644 frozen_deps/Cryptodome/IO/__init__.py create mode 100644 frozen_deps/Cryptodome/Math/Numbers.py create mode 100644 frozen_deps/Cryptodome/Math/Numbers.pyi create mode 100644 frozen_deps/Cryptodome/Math/Primality.py create mode 100644 frozen_deps/Cryptodome/Math/Primality.pyi create mode 100644 frozen_deps/Cryptodome/Math/_IntegerBase.py create mode 100644 frozen_deps/Cryptodome/Math/_IntegerBase.pyi create mode 100644 frozen_deps/Cryptodome/Math/_IntegerCustom.py create mode 100644 frozen_deps/Cryptodome/Math/_IntegerCustom.pyi create mode 100644 frozen_deps/Cryptodome/Math/_IntegerGMP.py create mode 100644 frozen_deps/Cryptodome/Math/_IntegerGMP.pyi create mode 100644 frozen_deps/Cryptodome/Math/_IntegerNative.py create mode 100644 frozen_deps/Cryptodome/Math/_IntegerNative.pyi create mode 100644 frozen_deps/Cryptodome/Math/__init__.py create mode 100755 frozen_deps/Cryptodome/Math/_modexp.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Protocol/KDF.py create mode 100644 frozen_deps/Cryptodome/Protocol/KDF.pyi create mode 100644 frozen_deps/Cryptodome/Protocol/SecretSharing.py create mode 100644 frozen_deps/Cryptodome/Protocol/SecretSharing.pyi create mode 100644 frozen_deps/Cryptodome/Protocol/__init__.py create mode 100644 frozen_deps/Cryptodome/Protocol/__init__.pyi create mode 100755 frozen_deps/Cryptodome/Protocol/_scrypt.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/PublicKey/DSA.py create mode 100644 frozen_deps/Cryptodome/PublicKey/DSA.pyi create mode 100644 frozen_deps/Cryptodome/PublicKey/ECC.py create mode 100644 frozen_deps/Cryptodome/PublicKey/ECC.pyi create mode 100644 frozen_deps/Cryptodome/PublicKey/ElGamal.py create mode 100644 frozen_deps/Cryptodome/PublicKey/ElGamal.pyi create mode 100644 frozen_deps/Cryptodome/PublicKey/RSA.py create mode 100644 frozen_deps/Cryptodome/PublicKey/RSA.pyi create mode 100644 frozen_deps/Cryptodome/PublicKey/__init__.py create mode 100644 frozen_deps/Cryptodome/PublicKey/__init__.pyi create mode 100755 frozen_deps/Cryptodome/PublicKey/_ec_ws.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/PublicKey/_openssh.py create mode 100644 frozen_deps/Cryptodome/PublicKey/_openssh.pyi create mode 100644 frozen_deps/Cryptodome/Random/__init__.py create mode 100644 frozen_deps/Cryptodome/Random/__init__.pyi create mode 100644 frozen_deps/Cryptodome/Random/random.py create mode 100644 frozen_deps/Cryptodome/Random/random.pyi create mode 100644 frozen_deps/Cryptodome/Signature/DSS.py create mode 100644 frozen_deps/Cryptodome/Signature/DSS.pyi create mode 100644 frozen_deps/Cryptodome/Signature/PKCS1_PSS.py create mode 100644 frozen_deps/Cryptodome/Signature/PKCS1_PSS.pyi create mode 100644 frozen_deps/Cryptodome/Signature/PKCS1_v1_5.py create mode 100644 frozen_deps/Cryptodome/Signature/PKCS1_v1_5.pyi create mode 100644 frozen_deps/Cryptodome/Signature/__init__.py create mode 100644 frozen_deps/Cryptodome/Signature/pkcs1_15.py create mode 100644 frozen_deps/Cryptodome/Signature/pkcs1_15.pyi create mode 100644 frozen_deps/Cryptodome/Signature/pss.py create mode 100644 frozen_deps/Cryptodome/Signature/pss.pyi create mode 100644 frozen_deps/Cryptodome/Util/Counter.py create mode 100644 frozen_deps/Cryptodome/Util/Counter.pyi create mode 100644 frozen_deps/Cryptodome/Util/Padding.py create mode 100644 frozen_deps/Cryptodome/Util/Padding.pyi create mode 100644 frozen_deps/Cryptodome/Util/RFC1751.py create mode 100644 frozen_deps/Cryptodome/Util/RFC1751.pyi create mode 100644 frozen_deps/Cryptodome/Util/__init__.py create mode 100644 frozen_deps/Cryptodome/Util/_cpu_features.py create mode 100644 frozen_deps/Cryptodome/Util/_cpu_features.pyi create mode 100755 frozen_deps/Cryptodome/Util/_cpuid_c.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Util/_file_system.py create mode 100644 frozen_deps/Cryptodome/Util/_file_system.pyi create mode 100644 frozen_deps/Cryptodome/Util/_raw_api.py create mode 100644 frozen_deps/Cryptodome/Util/_raw_api.pyi create mode 100755 frozen_deps/Cryptodome/Util/_strxor.cpython-38-x86_64-linux-gnu.so create mode 100644 frozen_deps/Cryptodome/Util/asn1.py create mode 100644 frozen_deps/Cryptodome/Util/asn1.pyi create mode 100644 frozen_deps/Cryptodome/Util/number.py create mode 100644 frozen_deps/Cryptodome/Util/number.pyi create mode 100644 frozen_deps/Cryptodome/Util/py3compat.py create mode 100644 frozen_deps/Cryptodome/Util/py3compat.pyi create mode 100644 frozen_deps/Cryptodome/Util/strxor.py create mode 100644 frozen_deps/Cryptodome/Util/strxor.pyi create mode 100644 frozen_deps/Cryptodome/__init__.py create mode 100644 frozen_deps/Cryptodome/__init__.pyi create mode 100644 frozen_deps/Cryptodome/py.typed delete mode 100644 frozen_deps/pycrypto-2.6.1.dist-info/INSTALLER delete mode 100644 frozen_deps/pycrypto-2.6.1.dist-info/METADATA delete mode 100644 frozen_deps/pycrypto-2.6.1.dist-info/RECORD delete mode 100644 frozen_deps/pycrypto-2.6.1.dist-info/WHEEL delete mode 100644 frozen_deps/pycrypto-2.6.1.dist-info/top_level.txt create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/AUTHORS.rst create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/INSTALLER create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/LICENSE.rst create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/METADATA create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/RECORD create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/WHEEL create mode 100644 frozen_deps/pycryptodomex-3.9.9.dist-info/top_level.txt diff --git a/README.rst b/README.rst index ecfd3d5..504d734 100644 --- a/README.rst +++ b/README.rst @@ -3,15 +3,20 @@ keytree.py - Make sure you have Python >= 3.7 - CD into the cloned repo -- Make sure dependencies are installed: ``pip3 install --user .`` -- Derive 10 keys from the given mnemonic: ``./keytree.py --end-idx 10`` -- Generate a new mnemonic and derive 10 keys from it: ``./keytree.py --end-idx 10 --gen-mnemonic`` -- You can also load the mnemonic from an existing JSON keystore file (generated - by the official AVAX Wallet): ``./keytree.py --from-avax-keystore``. + +Examples +-------- +- Derive 10 keys from a given mnemonic: ``./keytree.py --end-idx 10`` +- Generate a new mnemonic, print 10 derived addresses from it, then also save the mnemonic to an encrypted keystore file: ``./keytree.py --end-idx 10 --gen-mnemonic --save-keystore mykeystore.json`` +- Load the mnemonic from an existing keystore file: ``./keytree.py --load-keystore mykeystore.json`` - To see all private keys and the mnemonic phrase, use ``--show-private`` (only use it after you look around and ensure there is no one else looking at your - screen). -- Caveat: the above instructions use a frozen, full clone of all dependencies - (recommended). If you instead do a normal pip install and use - ``keytree.py`` (without ``./`` prefix), it will use the latest deps fetched - by pip. + screen) + +Caveat +------ +The above instructions use a frozen, full clone of all dependencies that is +shipped in this repo (more secure, recommended, only works on x86-64 Linux). +If you instead do a normal pip install (``pip3 install --user .``) and use +``keytree.py`` (without ``./`` prefix), it will use the latest deps fetched by +pip. diff --git a/frozen_deps/Crypto/Cipher/AES.py b/frozen_deps/Crypto/Cipher/AES.py deleted file mode 100644 index 14f68d8..0000000 --- a/frozen_deps/Crypto/Cipher/AES.py +++ /dev/null @@ -1,115 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Cipher/AES.py : AES -# -# =================================================================== -# The contents of this file are dedicated to the public domain. To -# the extent that dedication to the public domain is not available, -# everyone is granted a worldwide, perpetual, royalty-free, -# non-exclusive license to exercise all rights associated with the -# contents of this file for any purpose whatsoever. -# No rights are reserved. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# =================================================================== -"""AES symmetric cipher - -AES `(Advanced Encryption Standard)`__ is a symmetric block cipher standardized -by NIST_ . It has a fixed data block size of 16 bytes. -Its keys can be 128, 192, or 256 bits long. - -AES is very fast and secure, and it is the de facto standard for symmetric -encryption. - -As an example, encryption can be done as follows: - - >>> from Crypto.Cipher import AES - >>> from Crypto import Random - >>> - >>> key = b'Sixteen byte key' - >>> iv = Random.new().read(AES.block_size) - >>> cipher = AES.new(key, AES.MODE_CFB, iv) - >>> msg = iv + cipher.encrypt(b'Attack at dawn') - -.. __: http://en.wikipedia.org/wiki/Advanced_Encryption_Standard -.. _NIST: http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf - -:undocumented: __revision__, __package__ -""" - -__revision__ = "$Id$" - -from Crypto.Cipher import blockalgo -from Crypto.Cipher import _AES - -class AESCipher (blockalgo.BlockAlgo): - """AES cipher object""" - - def __init__(self, key, *args, **kwargs): - """Initialize an AES cipher object - - See also `new()` at the module level.""" - blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs) - -def new(key, *args, **kwargs): - """Create a new AES cipher - - :Parameters: - key : byte string - The secret key to use in the symmetric cipher. - It must be 16 (*AES-128*), 24 (*AES-192*), or 32 (*AES-256*) bytes long. - :Keywords: - mode : a *MODE_** constant - The chaining mode to use for encryption or decryption. - Default is `MODE_ECB`. - IV : byte string - The initialization vector to use for encryption or decryption. - - It is ignored for `MODE_ECB` and `MODE_CTR`. - - For `MODE_OPENPGP`, IV must be `block_size` bytes long for encryption - and `block_size` +2 bytes for decryption (in the latter case, it is - actually the *encrypted* IV which was prefixed to the ciphertext). - It is mandatory. - - For all other modes, it must be `block_size` bytes longs. It is optional and - when not present it will be given a default value of all zeroes. - counter : callable - (*Only* `MODE_CTR`). A stateful function that returns the next - *counter block*, which is a byte string of `block_size` bytes. - For better performance, use `Crypto.Util.Counter`. - segment_size : integer - (*Only* `MODE_CFB`).The number of bits the plaintext and ciphertext - are segmented in. - It must be a multiple of 8. If 0 or not specified, it will be assumed to be 8. - - :Return: an `AESCipher` object - """ - return AESCipher(key, *args, **kwargs) - -#: Electronic Code Book (ECB). See `blockalgo.MODE_ECB`. -MODE_ECB = 1 -#: Cipher-Block Chaining (CBC). See `blockalgo.MODE_CBC`. -MODE_CBC = 2 -#: Cipher FeedBack (CFB). See `blockalgo.MODE_CFB`. -MODE_CFB = 3 -#: This mode should not be used. -MODE_PGP = 4 -#: Output FeedBack (OFB). See `blockalgo.MODE_OFB`. -MODE_OFB = 5 -#: CounTer Mode (CTR). See `blockalgo.MODE_CTR`. -MODE_CTR = 6 -#: OpenPGP Mode. See `blockalgo.MODE_OPENPGP`. -MODE_OPENPGP = 7 -#: Size of a data block (in bytes) -block_size = 16 -#: Size of a key (in bytes) -key_size = ( 16, 24, 32 ) - diff --git a/frozen_deps/Crypto/Cipher/ARC2.py b/frozen_deps/Crypto/Cipher/ARC2.py deleted file mode 100644 index b5234e6..0000000 --- a/frozen_deps/Crypto/Cipher/ARC2.py +++ /dev/null @@ -1,130 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Cipher/ARC2.py : ARC2.py -# -# =================================================================== -# The contents of this file are dedicated to the public domain. To -# the extent that dedication to the public domain is not available, -# everyone is granted a worldwide, perpetual, royalty-free, -# non-exclusive license to exercise all rights associated with the -# contents of this file for any purpose whatsoever. -# No rights are reserved. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# =================================================================== -"""RC2 symmetric cipher - -RC2_ (Rivest's Cipher version 2) is a symmetric block cipher designed -by Ron Rivest in 1987. The cipher started as a proprietary design, -that was reverse engineered and anonymously posted on Usenet in 1996. -For this reason, the algorithm was first called *Alleged* RC2 (ARC2), -since the company that owned RC2 (RSA Data Inc.) did not confirm whether -the details leaked into public domain were really correct. - -The company eventually published its full specification in RFC2268_. - -RC2 has a fixed data block size of 8 bytes. Length of its keys can vary from -8 to 128 bits. One particular property of RC2 is that the actual -cryptographic strength of the key (*effective key length*) can be reduced -via a parameter. - -Even though RC2 is not cryptographically broken, it has not been analyzed as -thoroughly as AES, which is also faster than RC2. - -New designs should not use RC2. - -As an example, encryption can be done as follows: - - >>> from Crypto.Cipher import ARC2 - >>> from Crypto import Random - >>> - >>> key = b'Sixteen byte key' - >>> iv = Random.new().read(ARC2.block_size) - >>> cipher = ARC2.new(key, ARC2.MODE_CFB, iv) - >>> msg = iv + cipher.encrypt(b'Attack at dawn') - -.. _RC2: http://en.wikipedia.org/wiki/RC2 -.. _RFC2268: http://tools.ietf.org/html/rfc2268 - -:undocumented: __revision__, __package__ -""" - -__revision__ = "$Id$" - -from Crypto.Cipher import blockalgo -from Crypto.Cipher import _ARC2 - -class RC2Cipher (blockalgo.BlockAlgo): - """RC2 cipher object""" - - def __init__(self, key, *args, **kwargs): - """Initialize an ARC2 cipher object - - See also `new()` at the module level.""" - blockalgo.BlockAlgo.__init__(self, _ARC2, key, *args, **kwargs) - -def new(key, *args, **kwargs): - """Create a new RC2 cipher - - :Parameters: - key : byte string - The secret key to use in the symmetric cipher. - Its length can vary from 1 to 128 bytes. - :Keywords: - mode : a *MODE_** constant - The chaining mode to use for encryption or decryption. - Default is `MODE_ECB`. - IV : byte string - The initialization vector to use for encryption or decryption. - - It is ignored for `MODE_ECB` and `MODE_CTR`. - - For `MODE_OPENPGP`, IV must be `block_size` bytes long for encryption - and `block_size` +2 bytes for decryption (in the latter case, it is - actually the *encrypted* IV which was prefixed to the ciphertext). - It is mandatory. - - For all other modes, it must be `block_size` bytes longs. It is optional and - when not present it will be given a default value of all zeroes. - counter : callable - (*Only* `MODE_CTR`). A stateful function that returns the next - *counter block*, which is a byte string of `block_size` bytes. - For better performance, use `Crypto.Util.Counter`. - segment_size : integer - (*Only* `MODE_CFB`).The number of bits the plaintext and ciphertext - are segmented in. - It must be a multiple of 8. If 0 or not specified, it will be assumed to be 8. - effective_keylen : integer - Maximum cryptographic strength of the key, in bits. - It can vary from 0 to 1024. The default value is 1024. - - :Return: an `RC2Cipher` object - """ - return RC2Cipher(key, *args, **kwargs) - -#: Electronic Code Book (ECB). See `blockalgo.MODE_ECB`. -MODE_ECB = 1 -#: Cipher-Block Chaining (CBC). See `blockalgo.MODE_CBC`. -MODE_CBC = 2 -#: Cipher FeedBack (CFB). See `blockalgo.MODE_CFB`. -MODE_CFB = 3 -#: This mode should not be used. -MODE_PGP = 4 -#: Output FeedBack (OFB). See `blockalgo.MODE_OFB`. -MODE_OFB = 5 -#: CounTer Mode (CTR). See `blockalgo.MODE_CTR`. -MODE_CTR = 6 -#: OpenPGP Mode. See `blockalgo.MODE_OPENPGP`. -MODE_OPENPGP = 7 -#: Size of a data block (in bytes) -block_size = 8 -#: Size of a key (in bytes) -key_size = range(1,16+1) - diff --git a/frozen_deps/Crypto/Cipher/ARC4.py b/frozen_deps/Crypto/Cipher/ARC4.py deleted file mode 100644 index d83f75b..0000000 --- a/frozen_deps/Crypto/Cipher/ARC4.py +++ /dev/null @@ -1,120 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Cipher/ARC4.py : ARC4 -# -# =================================================================== -# The contents of this file are dedicated to the public domain. To -# the extent that dedication to the public domain is not available, -# everyone is granted a worldwide, perpetual, royalty-free, -# non-exclusive license to exercise all rights associated with the -# contents of this file for any purpose whatsoever. -# No rights are reserved. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# =================================================================== -"""ARC4 symmetric cipher - -ARC4_ (Alleged RC4) is an implementation of RC4 (Rivest's Cipher version 4), -a symmetric stream cipher designed by Ron Rivest in 1987. - -The cipher started as a proprietary design, that was reverse engineered and -anonymously posted on Usenet in 1994. The company that owns RC4 (RSA Data -Inc.) never confirmed the correctness of the leaked algorithm. - -Unlike RC2, the company has never published the full specification of RC4, -of whom it still holds the trademark. - -ARC4 keys can vary in length from 40 to 2048 bits. - -One problem of ARC4 is that it does not take a nonce or an IV. If it is required -to encrypt multiple messages with the same long-term key, a distinct -independent nonce must be created for each message, and a short-term key must -be derived from the combination of the long-term key and the nonce. -Due to the weak key scheduling algorithm of RC2, the combination must be carried -out with a complex function (e.g. a cryptographic hash) and not by simply -concatenating key and nonce. - -New designs should not use ARC4. A good alternative is AES -(`Crypto.Cipher.AES`) in any of the modes that turn it into a stream cipher (OFB, CFB, or CTR). - -As an example, encryption can be done as follows: - - >>> from Crypto.Cipher import ARC4 - >>> from Crypto.Hash import SHA - >>> from Crypto import Random - >>> - >>> key = b'Very long and confidential key' - >>> nonce = Random.new().read(16) - >>> tempkey = SHA.new(key+nonce).digest() - >>> cipher = ARC4.new(tempkey) - >>> msg = nonce + cipher.encrypt(b'Open the pod bay doors, HAL') - -.. _ARC4: http://en.wikipedia.org/wiki/RC4 - -:undocumented: __revision__, __package__ -""" - -__revision__ = "$Id$" - -from Crypto.Cipher import _ARC4 - -class ARC4Cipher: - """ARC4 cipher object""" - - - def __init__(self, key, *args, **kwargs): - """Initialize an ARC4 cipher object - - See also `new()` at the module level.""" - - self._cipher = _ARC4.new(key, *args, **kwargs) - self.block_size = self._cipher.block_size - self.key_size = self._cipher.key_size - - def encrypt(self, plaintext): - """Encrypt a piece of data. - - :Parameters: - plaintext : byte string - The piece of data to encrypt. It can be of any size. - :Return: the encrypted data (byte string, as long as the - plaintext). - """ - return self._cipher.encrypt(plaintext) - - def decrypt(self, ciphertext): - """Decrypt a piece of data. - - :Parameters: - ciphertext : byte string - The piece of data to decrypt. It can be of any size. - :Return: the decrypted data (byte string, as long as the - ciphertext). - """ - return self._cipher.decrypt(ciphertext) - -def new(key, *args, **kwargs): - """Create a new ARC4 cipher - - :Parameters: - key : byte string - The secret key to use in the symmetric cipher. - It can have any length, with a minimum of 40 bytes. - Its cryptograpic strength is always capped to 2048 bits (256 bytes). - - :Return: an `ARC4Cipher` object - """ - return ARC4Cipher(key, *args, **kwargs) - -#: Size of a data block (in bytes) -block_size = 1 -#: Size of a key (in bytes) -key_size = range(1,256+1) - diff --git a/frozen_deps/Crypto/Cipher/Blowfish.py b/frozen_deps/Crypto/Cipher/Blowfish.py deleted file mode 100644 index 8c81d96..0000000 --- a/frozen_deps/Crypto/Cipher/Blowfish.py +++ /dev/null @@ -1,121 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Cipher/Blowfish.py : Blowfish -# -# =================================================================== -# The contents of this file are dedicated to the public domain. To -# the extent that dedication to the public domain is not available, -# everyone is granted a worldwide, perpetual, royalty-free, -# non-exclusive license to exercise all rights associated with the -# contents of this file for any purpose whatsoever. -# No rights are reserved. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# =================================================================== -"""Blowfish symmetric cipher - -Blowfish_ is a symmetric block cipher designed by Bruce Schneier. - -It has a fixed data block size of 8 bytes and its keys can vary in length -from 32 to 448 bits (4 to 56 bytes). - -Blowfish is deemed secure and it is fast. However, its keys should be chosen -to be big enough to withstand a brute force attack (e.g. at least 16 bytes). - -As an example, encryption can be done as follows: - - >>> from Crypto.Cipher import Blowfish - >>> from Crypto import Random - >>> from struct import pack - >>> - >>> bs = Blowfish.block_size - >>> key = b'An arbitrarily long key' - >>> iv = Random.new().read(bs) - >>> cipher = Blowfish.new(key, Blowfish.MODE_CBC, iv) - >>> plaintext = b'docendo discimus ' - >>> plen = bs - divmod(len(plaintext),bs)[1] - >>> padding = [plen]*plen - >>> padding = pack('b'*plen, *padding) - >>> msg = iv + cipher.encrypt(plaintext + padding) - -.. _Blowfish: http://www.schneier.com/blowfish.html - -:undocumented: __revision__, __package__ -""" - -__revision__ = "$Id$" - -from Crypto.Cipher import blockalgo -from Crypto.Cipher import _Blowfish - -class BlowfishCipher (blockalgo.BlockAlgo): - """Blowfish cipher object""" - - def __init__(self, key, *args, **kwargs): - """Initialize a Blowfish cipher object - - See also `new()` at the module level.""" - blockalgo.BlockAlgo.__init__(self, _Blowfish, key, *args, **kwargs) - -def new(key, *args, **kwargs): - """Create a new Blowfish cipher - - :Parameters: - key : byte string - The secret key to use in the symmetric cipher. - Its length can vary from 4 to 56 bytes. - :Keywords: - mode : a *MODE_** constant - The chaining mode to use for encryption or decryption. - Default is `MODE_ECB`. - IV : byte string - The initialization vector to use for encryption or decryption. - - It is ignored for `MODE_ECB` and `MODE_CTR`. - - For `MODE_OPENPGP`, IV must be `block_size` bytes long for encryption - and `block_size` +2 bytes for decryption (in the latter case, it is - actually the *encrypted* IV which was prefixed to the ciphertext). - It is mandatory. - - For all other modes, it must be `block_size` bytes longs. It is optional and - when not present it will be given a default value of all zeroes. - counter : callable - (*Only* `MODE_CTR`). A stateful function that returns the next - *counter block*, which is a byte string of `block_size` bytes. - For better performance, use `Crypto.Util.Counter`. - segment_size : integer - (*Only* `MODE_CFB`).The number of bits the plaintext and ciphertext - are segmented in. - It must be a multiple of 8. If 0 or not specified, it will be assumed to be 8. - - :Return: a `BlowfishCipher` object - """ - return BlowfishCipher(key, *args, **kwargs) - -#: Electronic Code Book (ECB). See `blockalgo.MODE_ECB`. -MODE_ECB = 1 -#: Cipher-Block Chaining (CBC). See `blockalgo.MODE_CBC`. -MODE_CBC = 2 -#: Cipher FeedBack (CFB). See `blockalgo.MODE_CFB`. -MODE_CFB = 3 -#: This mode should not be used. -MODE_PGP = 4 -#: Output FeedBack (OFB). See `blockalgo.MODE_OFB`. -MODE_OFB = 5 -#: CounTer Mode (CTR). See `blockalgo.MODE_CTR`. -MODE_CTR = 6 -#: OpenPGP Mode. See `blockalgo.MODE_OPENPGP`. -MODE_OPENPGP = 7 -#: Size of a data block (in bytes) -block_size = 8 -#: Size of a key (in bytes) -key_size = range(4,56+1) - diff --git a/frozen_deps/Crypto/Cipher/CAST.py b/frozen_deps/Crypto/Cipher/CAST.py deleted file mode 100644 index 89543b2..0000000 --- a/frozen_deps/Crypto/Cipher/CAST.py +++ /dev/null @@ -1,123 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Cipher/CAST.py : CAST -# -# =================================================================== -# The contents of this file are dedicated to the public domain. To -# the extent that dedication to the public domain is not available, -# everyone is granted a worldwide, perpetual, royalty-free, -# non-exclusive license to exercise all rights associated with the -# contents of this file for any purpose whatsoever. -# No rights are reserved. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# =================================================================== -"""CAST-128 symmetric cipher - -CAST-128_ (or CAST5) is a symmetric block cipher specified in RFC2144_. - -It has a fixed data block size of 8 bytes. Its key can vary in length -from 40 to 128 bits. - -CAST is deemed to be cryptographically secure, but its usage is not widespread. -Keys of sufficient length should be used to prevent brute force attacks -(128 bits are recommended). - -As an example, encryption can be done as follows: - - >>> from Crypto.Cipher import CAST - >>> from Crypto import Random - >>> - >>> key = b'Sixteen byte key' - >>> iv = Random.new().read(CAST.block_size) - >>> cipher = CAST.new(key, CAST.MODE_OPENPGP, iv) - >>> plaintext = b'sona si latine loqueris ' - >>> msg = cipher.encrypt(plaintext) - >>> - ... - >>> eiv = msg[:CAST.block_size+2] - >>> ciphertext = msg[CAST.block_size+2:] - >>> cipher = CAST.new(key, CAST.MODE_OPENPGP, eiv) - >>> print cipher.decrypt(ciphertext) - -.. _CAST-128: http://en.wikipedia.org/wiki/CAST-128 -.. _RFC2144: http://tools.ietf.org/html/rfc2144 - -:undocumented: __revision__, __package__ -""" - -__revision__ = "$Id$" - -from Crypto.Cipher import blockalgo -from Crypto.Cipher import _CAST - -class CAST128Cipher(blockalgo.BlockAlgo): - """CAST-128 cipher object""" - - def __init__(self, key, *args, **kwargs): - """Initialize a CAST-128 cipher object - - See also `new()` at the module level.""" - blockalgo.BlockAlgo.__init__(self, _CAST, key, *args, **kwargs) - -def new(key, *args, **kwargs): - """Create a new CAST-128 cipher - - :Parameters: - key : byte string - The secret key to use in the symmetric cipher. - Its length may vary from 5 to 16 bytes. - :Keywords: - mode : a *MODE_** constant - The chaining mode to use for encryption or decryption. - Default is `MODE_ECB`. - IV : byte string - The initialization vector to use for encryption or decryption. - - It is ignored for `MODE_ECB` and `MODE_CTR`. - - For `MODE_OPENPGP`, IV must be `block_size` bytes long for encryption - and `block_size` +2 bytes for decryption (in the latter case, it is - actually the *encrypted* IV which was prefixed to the ciphertext). - It is mandatory. - - For all other modes, it must be `block_size` bytes longs. It is optional and - when not present it will be given a default value of all zeroes. - counter : callable - (*Only* `MODE_CTR`). A stateful function that returns the next - *counter block*, which is a byte string of `block_size` bytes. - For better performance, use `Crypto.Util.Counter`. - segment_size : integer - (*Only* `MODE_CFB`).The number of bits the plaintext and ciphertext - are segmented in. - It must be a multiple of 8. If 0 or not specified, it will be assumed to be 8. - - :