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 --- 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 212 files changed, 24798 insertions(+) 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 (limited to 'frozen_deps/Cryptodome') diff --git a/frozen_deps/Cryptodome/Cipher/AES.py b/frozen_deps/Cryptodome/Cipher/AES.py new file mode 100644 index 0000000..dd2671a --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/AES.py @@ -0,0 +1,250 @@ +# -*- 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. +# =================================================================== +""" +Module's constants for the modes of operation supported with AES: + +:var MODE_ECB: :ref:`Electronic Code Book (ECB) ` +:var MODE_CBC: :ref:`Cipher-Block Chaining (CBC) ` +:var MODE_CFB: :ref:`Cipher FeedBack (CFB) ` +:var MODE_OFB: :ref:`Output FeedBack (OFB) ` +:var MODE_CTR: :ref:`CounTer Mode (CTR) ` +:var MODE_OPENPGP: :ref:`OpenPGP Mode ` +:var MODE_CCM: :ref:`Counter with CBC-MAC (CCM) Mode ` +:var MODE_EAX: :ref:`EAX Mode ` +:var MODE_GCM: :ref:`Galois Counter Mode (GCM) ` +:var MODE_SIV: :ref:`Syntethic Initialization Vector (SIV) ` +:var MODE_OCB: :ref:`Offset Code Book (OCB) ` +""" + +import sys + +from Cryptodome.Cipher import _create_cipher +from Cryptodome.Util._raw_api import (load_pycryptodome_raw_lib, + VoidPointer, SmartPointer, + c_size_t, c_uint8_ptr) + +from Cryptodome.Util import _cpu_features +from Cryptodome.Random import get_random_bytes + + +_cproto = """ + int AES_start_operation(const uint8_t key[], + size_t key_len, + void **pResult); + int AES_encrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int AES_decrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int AES_stop_operation(void *state); + """ + + +# Load portable AES +_raw_aes_lib = load_pycryptodome_raw_lib("Cryptodome.Cipher._raw_aes", + _cproto) + +# Try to load AES with AES NI instructions +try: + _raw_aesni_lib = None + if _cpu_features.have_aes_ni(): + _raw_aesni_lib = load_pycryptodome_raw_lib("Cryptodome.Cipher._raw_aesni", + _cproto.replace("AES", + "AESNI")) +# _raw_aesni may not have been compiled in +except OSError: + pass + + +def _create_base_cipher(dict_parameters): + """This method instantiates and returns a handle to a low-level + base cipher. It will absorb named parameters in the process.""" + + use_aesni = dict_parameters.pop("use_aesni", True) + + try: + key = dict_parameters.pop("key") + except KeyError: + raise TypeError("Missing 'key' parameter") + + if len(key) not in key_size: + raise ValueError("Incorrect AES key length (%d bytes)" % len(key)) + + if use_aesni and _raw_aesni_lib: + start_operation = _raw_aesni_lib.AESNI_start_operation + stop_operation = _raw_aesni_lib.AESNI_stop_operation + else: + start_operation = _raw_aes_lib.AES_start_operation + stop_operation = _raw_aes_lib.AES_stop_operation + + cipher = VoidPointer() + result = start_operation(c_uint8_ptr(key), + c_size_t(len(key)), + cipher.address_of()) + if result: + raise ValueError("Error %X while instantiating the AES cipher" + % result) + return SmartPointer(cipher.get(), stop_operation) + + +def _derive_Poly1305_key_pair(key, nonce): + """Derive a tuple (r, s, nonce) for a Poly1305 MAC. + + If nonce is ``None``, a new 16-byte nonce is generated. + """ + + if len(key) != 32: + raise ValueError("Poly1305 with AES requires a 32-byte key") + + if nonce is None: + nonce = get_random_bytes(16) + elif len(nonce) != 16: + raise ValueError("Poly1305 with AES requires a 16-byte nonce") + + s = new(key[:16], MODE_ECB).encrypt(nonce) + return key[16:], s, nonce + + +def new(key, mode, *args, **kwargs): + """Create a new AES cipher. + + :param key: + The secret key to use in the symmetric cipher. + + It must be 16, 24 or 32 bytes long (respectively for *AES-128*, + *AES-192* or *AES-256*). + + For ``MODE_SIV`` only, it doubles to 32, 48, or 64 bytes. + :type key: bytes/bytearray/memoryview + + :param mode: + The chaining mode to use for encryption or decryption. + If in doubt, use ``MODE_EAX``. + :type mode: One of the supported ``MODE_*`` constants + + :Keyword Arguments: + * **iv** (*bytes*, *bytearray*, *memoryview*) -- + (Only applicable for ``MODE_CBC``, ``MODE_CFB``, ``MODE_OFB``, + and ``MODE_OPENPGP`` modes). + + The initialization vector to use for encryption or decryption. + + For ``MODE_CBC``, ``MODE_CFB``, and ``MODE_OFB`` it must be 16 bytes long. + + For ``MODE_OPENPGP`` mode only, + it must be 16 bytes long for encryption + and 18 bytes for decryption (in the latter case, it is + actually the *encrypted* IV which was prefixed to the ciphertext). + + If not provided, a random byte string is generated (you must then + read its value with the :attr:`iv` attribute). + + * **nonce** (*bytes*, *bytearray*, *memoryview*) -- + (Only applicable for ``MODE_CCM``, ``MODE_EAX``, ``MODE_GCM``, + ``MODE_SIV``, ``MODE_OCB``, and ``MODE_CTR``). + + A value that must never be reused for any other encryption done + with this key (except possibly for ``MODE_SIV``, see below). + + For ``MODE_EAX``, ``MODE_GCM`` and ``MODE_SIV`` there are no + restrictions on its length (recommended: **16** bytes). + + For ``MODE_CCM``, its length must be in the range **[7..13]**. + Bear in mind that with CCM there is a trade-off between nonce + length and maximum message size. Recommendation: **11** bytes. + + For ``MODE_OCB``, its length must be in the range **[1..15]** + (recommended: **15**). + + For ``MODE_CTR``, its length must be in the range **[0..15]** + (recommended: **8**). + + For ``MODE_SIV``, the nonce is optional, if it is not specified, + then no nonce is being used, which renders the encryption + deterministic. + + If not provided, for modes other than ``MODE_SIV```, a random + byte string of the recommended length is used (you must then + read its value with the :attr:`nonce` attribute). + + * **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 not specified, it will be assumed to be 8. + + * **mac_len** : (*integer*) -- + (Only ``MODE_EAX``, ``MODE_GCM``, ``MODE_OCB``, ``MODE_CCM``) + Length of the authentication tag, in bytes. + + It must be even and in the range **[4..16]**. + The recommended value (and the default, if not specified) is **16**. + + * **msg_len** : (*integer*) -- + (Only ``MODE_CCM``). Length of the message to (de)cipher. + If not specified, ``encrypt`` must be called with the entire message. + Similarly, ``decrypt`` can only be called once. + + * **assoc_len** : (*integer*) -- + (Only ``MODE_CCM``). Length of the associated data. + If not specified, all associated data is buffered internally, + which may represent a problem for very large messages. + + * **initial_value** : (*integer* or *bytes/bytearray/memoryview*) -- + (Only ``MODE_CTR``). + The initial value for the counter. If not present, the cipher will + start counting from 0. The value is incremented by one for each block. + The counter number is encoded in big endian mode. + + * **counter** : (*object*) -- + Instance of ``Cryptodome.Util.Counter``, which allows full customization + of the counter block. This parameter is incompatible to both ``nonce`` + and ``initial_value``. + + * **use_aesni** : (*boolean*) -- + Use Intel AES-NI hardware extensions (default: use if available). + + :Return: an AES object, of the applicable mode. + """ + + kwargs["add_aes_modes"] = True + return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs) + + +MODE_ECB = 1 +MODE_CBC = 2 +MODE_CFB = 3 +MODE_OFB = 5 +MODE_CTR = 6 +MODE_OPENPGP = 7 +MODE_CCM = 8 +MODE_EAX = 9 +MODE_SIV = 10 +MODE_GCM = 11 +MODE_OCB = 12 + +# 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/Cryptodome/Cipher/AES.pyi b/frozen_deps/Cryptodome/Cipher/AES.pyi new file mode 100644 index 0000000..c150efb --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/AES.pyi @@ -0,0 +1,47 @@ +from typing import Union, Tuple, Optional, Dict + +from Cryptodome.Cipher._mode_ecb import EcbMode +from Cryptodome.Cipher._mode_cbc import CbcMode +from Cryptodome.Cipher._mode_cfb import CfbMode +from Cryptodome.Cipher._mode_ofb import OfbMode +from Cryptodome.Cipher._mode_ctr import CtrMode +from Cryptodome.Cipher._mode_openpgp import OpenPgpMode +from Cryptodome.Cipher._mode_ccm import CcmMode +from Cryptodome.Cipher._mode_eax import EaxMode +from Cryptodome.Cipher._mode_gcm import GcmMode +from Cryptodome.Cipher._mode_siv import SivMode +from Cryptodome.Cipher._mode_ocb import OcbMode + +AESMode = int + +MODE_ECB: AESMode +MODE_CBC: AESMode +MODE_CFB: AESMode +MODE_OFB: AESMode +MODE_CTR: AESMode +MODE_OPENPGP: AESMode +MODE_CCM: AESMode +MODE_EAX: AESMode +MODE_GCM: AESMode +MODE_SIV: AESMode +MODE_OCB: AESMode + +Buffer = Union[bytes, bytearray, memoryview] + +def new(key: Buffer, + mode: AESMode, + iv : Buffer = ..., + IV : Buffer = ..., + nonce : Buffer = ..., + segment_size : int = ..., + mac_len : int = ..., + assoc_len : int = ..., + initial_value : Union[int, Buffer] = ..., + counter : Dict = ..., + use_aesni : bool = ...) -> \ + Union[EcbMode, CbcMode, CfbMode, OfbMode, CtrMode, + OpenPgpMode, CcmMode, EaxMode, GcmMode, + SivMode, OcbMode]: ... + +block_size: int +key_size: Tuple[int, int, int] diff --git a/frozen_deps/Cryptodome/Cipher/ARC2.py b/frozen_deps/Cryptodome/Cipher/ARC2.py new file mode 100644 index 0000000..4dc1bb8 --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/ARC2.py @@ -0,0 +1,175 @@ +# -*- 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. +# =================================================================== +""" +Module's constants for the modes of operation supported with ARC2: + +:var MODE_ECB: :ref:`Electronic Code Book (ECB) ` +:var MODE_CBC: :ref:`Cipher-Block Chaining (CBC) ` +:var MODE_CFB: :ref:`Cipher FeedBack (CFB) ` +:var MODE_OFB: :ref:`Output FeedBack (OFB) ` +:var MODE_CTR: :ref:`CounTer Mode (CTR) ` +:var MODE_OPENPGP: :ref:`OpenPGP Mode ` +:var MODE_EAX: :ref:`EAX Mode ` +""" + +import sys + +from Cryptodome.Cipher import _create_cipher +from Cryptodome.Util.py3compat import byte_string +from Cryptodome.Util._raw_api import (load_pycryptodome_raw_lib, + VoidPointer, SmartPointer, + c_size_t, c_uint8_ptr) + +_raw_arc2_lib = load_pycryptodome_raw_lib( + "Cryptodome.Cipher._raw_arc2", + """ + int ARC2_start_operation(const uint8_t key[], + size_t key_len, + size_t effective_key_len, + void **pResult); + int ARC2_encrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int ARC2_decrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int ARC2_stop_operation(void *state); + """ + ) + + +def _create_base_cipher(dict_parameters): + """This method instantiates and returns a handle to a low-level + base cipher. It will absorb named parameters in the process.""" + + try: + key = dict_parameters.pop("key") + except KeyError: + raise TypeError("Missing 'key' parameter") + + effective_keylen = dict_parameters.pop("effective_keylen", 1024) + + if len(key) not in key_size: + raise ValueError("Incorrect ARC2 key length (%d bytes)" % len(key)) + + if not (40 <= effective_keylen <= 1024): + raise ValueError("'effective_key_len' must be at least 40 and no larger than 1024 " + "(not %d)" % effective_keylen) + + start_operation = _raw_arc2_lib.ARC2_start_operation + stop_operation = _raw_arc2_lib.ARC2_stop_operation + + cipher = VoidPointer() + result = start_operation(c_uint8_ptr(key), + c_size_t(len(key)), + c_size_t(effective_keylen), + cipher.address_of()) + if result: + raise ValueError("Error %X while instantiating the ARC2 cipher" + % result) + + return SmartPointer(cipher.get(), stop_operation) + + +def new(key, mode, *args, **kwargs): + """Create a new RC2 cipher. + + :param key: + The secret key to use in the symmetric cipher. + Its length can vary from 5 to 128 bytes; the actual search space + (and the cipher strength) can be reduced with the ``effective_keylen`` parameter. + :type key: bytes, bytearray, memoryview + + :param mode: + The chaining mode to use for encryption or decryption. + :type mode: One of the supported ``MODE_*`` constants + + :Keyword Arguments: + * **iv** (*bytes*, *bytearray*, *memoryview*) -- + (Only applicable for ``MODE_CBC``, ``MODE_CFB``, ``MODE_OFB``, + and ``MODE_OPENPGP`` modes). + + The initialization vector to use for encryption or decryption. + + For ``MODE_CBC``, ``MODE_CFB``, and ``MODE_OFB`` it must be 8 bytes long. + + For ``MODE_OPENPGP`` mode only, + it must be 8 bytes long for encryption + and 10 bytes for decryption (in the latter case, it is + actually the *encrypted* IV which was prefixed to the ciphertext). + + If not provided, a random byte string is generated (you must then + read its value with the :attr:`iv` attribute). + + * **nonce** (*bytes*, *bytearray*, *memoryview*) -- + (Only applicable for ``MODE_EAX`` and ``MODE_CTR``). + + A value that must never be reused for any other encryption done + with this key. + + For ``MODE_EAX`` there are no + restrictions on its length (recommended: **16** bytes). + + For ``MODE_CTR``, its length must be in the range **[0..7]**. + + If not provided for ``MODE_EAX``, a random byte string is generated (you + can read it back via the ``nonce`` attribute). + + * **effective_keylen** (*integer*) -- + Optional. Maximum strength in bits of the actual key used by the ARC2 algorithm. + If the supplied ``key`` parameter is longer (in bits) of the value specified + here, it will be weakened to match it. + If not specified, no limitation is applied. + + * **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 not specified, it will be assumed to be 8. + + * **mac_len** : (*integer*) -- + (Only ``MODE_EAX``) + Length of the authentication tag, in bytes. + It must be no longer than 8 (default). + + * **initial_value** : (*integer*) -- + (Only ``MODE_CTR``). The initial value for the counter within + the counter block. By default it is **0**. + + :Return: an ARC2 object, of the applicable mode. + """ + + return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs) + +MODE_ECB = 1 +MODE_CBC = 2 +MODE_CFB = 3 +MODE_OFB = 5 +MODE_CTR = 6 +MODE_OPENPGP = 7 +MODE_EAX = 9 + +# Size of a data block (in bytes) +block_size = 8 +# Size of a key (in bytes) +key_size = range(5, 128 + 1) diff --git a/frozen_deps/Cryptodome/Cipher/ARC2.pyi b/frozen_deps/Cryptodome/Cipher/ARC2.pyi new file mode 100644 index 0000000..9659c68 --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/ARC2.pyi @@ -0,0 +1,35 @@ +from typing import Union, Dict, Iterable + +from Cryptodome.Cipher._mode_ecb import EcbMode +from Cryptodome.Cipher._mode_cbc import CbcMode +from Cryptodome.Cipher._mode_cfb import CfbMode +from Cryptodome.Cipher._mode_ofb import OfbMode +from Cryptodome.Cipher._mode_ctr import CtrMode +from Cryptodome.Cipher._mode_openpgp import OpenPgpMode +from Cryptodome.Cipher._mode_eax import EaxMode + +ARC2Mode = int + +MODE_ECB: ARC2Mode +MODE_CBC: ARC2Mode +MODE_CFB: ARC2Mode +MODE_OFB: ARC2Mode +MODE_CTR: ARC2Mode +MODE_OPENPGP: ARC2Mode +MODE_EAX: ARC2Mode + +Buffer = Union[bytes, bytearray, memoryview] + +def new(key: Buffer, + mode: ARC2Mode, + iv : Buffer = ..., + IV : Buffer = ..., + nonce : Buffer = ..., + segment_size : int = ..., + mac_len : int = ..., + initial_value : Union[int, Buffer] = ..., + counter : Dict = ...) -> \ + Union[EcbMode, CbcMode, CfbMode, OfbMode, CtrMode, OpenPgpMode]: ... + +block_size: int +key_size: Iterable[int] diff --git a/frozen_deps/Cryptodome/Cipher/ARC4.py b/frozen_deps/Cryptodome/Cipher/ARC4.py new file mode 100644 index 0000000..e640e77 --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/ARC4.py @@ -0,0 +1,137 @@ +# -*- 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. +# =================================================================== + +from Cryptodome.Util.py3compat import b + +from Cryptodome.Util._raw_api import (load_pycryptodome_raw_lib, VoidPointer, + create_string_buffer, get_raw_buffer, + SmartPointer, c_size_t, c_uint8_ptr) + + +_raw_arc4_lib = load_pycryptodome_raw_lib("Cryptodome.Cipher._ARC4", """ + int ARC4_stream_encrypt(void *rc4State, const uint8_t in[], + uint8_t out[], size_t len); + int ARC4_stream_init(uint8_t *key, size_t keylen, + void **pRc4State); + int ARC4_stream_destroy(void *rc4State); + """) + + +class ARC4Cipher: + """ARC4 cipher object. Do not create it directly. Use + :func:`Cryptodome.Cipher.ARC4.new` instead. + """ + + def __init__(self, key, *args, **kwargs): + """Initialize an ARC4 cipher object + + See also `new()` at the module level.""" + + if len(args) > 0: + ndrop = args[0] + args = args[1:] + else: + ndrop = kwargs.pop('drop', 0) + + if len(key) not in key_size: + raise ValueError("Incorrect ARC4 key length (%d bytes)" % + len(key)) + + self._state = VoidPointer() + result = _raw_arc4_lib.ARC4_stream_init(c_uint8_ptr(key), + c_size_t(len(key)), + self._state.address_of()) + if result != 0: + raise ValueError("Error %d while creating the ARC4 cipher" + % result) + self._state = SmartPointer(self._state.get(), + _raw_arc4_lib.ARC4_stream_destroy) + + if ndrop > 0: + # This is OK even if the cipher is used for decryption, + # since encrypt and decrypt are actually the same thing + # with ARC4. + self.encrypt(b'\x00' * ndrop) + + self.block_size = 1 + self.key_size = len(key) + + def encrypt(self, plaintext): + """Encrypt a piece of data. + + :param plaintext: The data to encrypt, of any size. + :type plaintext: bytes, bytearray, memoryview + :returns: the encrypted byte string, of equal length as the + plaintext. + """ + + ciphertext = create_string_buffer(len(plaintext)) + result = _raw_arc4_lib.ARC4_stream_encrypt(self._state.get(), + c_uint8_ptr(plaintext), + ciphertext, + c_size_t(len(plaintext))) + if result: + raise ValueError("Error %d while encrypting with RC4" % result) + return get_raw_buffer(ciphertext) + + def decrypt(self, ciphertext): + """Decrypt a piece of data. + + :param ciphertext: The data to decrypt, of any size. + :type ciphertext: bytes, bytearray, memoryview + :returns: the decrypted byte string, of equal length as the + ciphertext. + """ + + try: + return self.encrypt(ciphertext) + except ValueError as e: + raise ValueError(str(e).replace("enc", "dec")) + + +def new(key, *args, **kwargs): + """Create a new ARC4 cipher. + + :param key: + The secret key to use in the symmetric cipher. + Its length must be in the range ``[5..256]``. + The recommended length is 16 bytes. + :type key: bytes, bytearray, memoryview + + :Keyword Arguments: + * *drop* (``integer``) -- + The amount of bytes to discard from the initial part of the keystream. + In fact, such part has been found to be distinguishable from random + data (while it shouldn't) and also correlated to key. + + The recommended value is 3072_ bytes. The default value is 0. + + :Return: an `ARC4Cipher` object + + .. _3072: http://eprint.iacr.org/2002/067.pdf + """ + return ARC4Cipher(key, *args, **kwargs) + +# Size of a data block (in bytes) +block_size = 1 +# Size of a key (in bytes) +key_size = range(5, 256+1) diff --git a/frozen_deps/Cryptodome/Cipher/ARC4.pyi b/frozen_deps/Cryptodome/Cipher/ARC4.pyi new file mode 100644 index 0000000..2e75d6f --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/ARC4.pyi @@ -0,0 +1,16 @@ +from typing import Any, Union, Iterable + +Buffer = Union[bytes, bytearray, memoryview] + +class ARC4Cipher: + block_size: int + key_size: int + + def __init__(self, key: Buffer, *args: Any, **kwargs: Any) -> None: ... + def encrypt(self, plaintext: Buffer) -> bytes: ... + def decrypt(self, ciphertext: Buffer) -> bytes: ... + +def new(key: Buffer, drop : int = ...) -> ARC4Cipher: ... + +block_size: int +key_size: Iterable[int] diff --git a/frozen_deps/Cryptodome/Cipher/Blowfish.py b/frozen_deps/Cryptodome/Cipher/Blowfish.py new file mode 100644 index 0000000..536cbc8 --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/Blowfish.py @@ -0,0 +1,159 @@ +# -*- 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. +# =================================================================== +""" +Module's constants for the modes of operation supported with Blowfish: + +:var MODE_ECB: :ref:`Electronic Code Book (ECB) ` +:var MODE_CBC: :ref:`Cipher-Block Chaining (CBC) ` +:var MODE_CFB: :ref:`Cipher FeedBack (CFB) ` +:var MODE_OFB: :ref:`Output FeedBack (OFB) ` +:var MODE_CTR: :ref:`CounTer Mode (CTR) ` +:var MODE_OPENPGP: :ref:`OpenPGP Mode ` +:var MODE_EAX: :ref:`EAX Mode ` +""" + +import sys + +from Cryptodome.Cipher import _create_cipher +from Cryptodome.Util._raw_api import (load_pycryptodome_raw_lib, + VoidPointer, SmartPointer, c_size_t, + c_uint8_ptr) + +_raw_blowfish_lib = load_pycryptodome_raw_lib( + "Cryptodome.Cipher._raw_blowfish", + """ + int Blowfish_start_operation(const uint8_t key[], + size_t key_len, + void **pResult); + int Blowfish_encrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int Blowfish_decrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int Blowfish_stop_operation(void *state); + """ + ) + + +def _create_base_cipher(dict_parameters): + """This method instantiates and returns a smart pointer to + a low-level base cipher. It will absorb named parameters in + the process.""" + + try: + key = dict_parameters.pop("key") + except KeyError: + raise TypeError("Missing 'key' parameter") + + if len(key) not in key_size: + raise ValueError("Incorrect Blowfish key length (%d bytes)" % len(key)) + + start_operation = _raw_blowfish_lib.Blowfish_start_operation + stop_operation = _raw_blowfish_lib.Blowfish_stop_operation + + void_p = VoidPointer() + result = start_operation(c_uint8_ptr(key), + c_size_t(len(key)), + void_p.address_of()) + if result: + raise ValueError("Error %X while instantiating the Blowfish cipher" + % result) + return SmartPointer(void_p.get(), stop_operation) + + +def new(key, mode, *args, **kwargs): + """Create a new Blowfish cipher + + :param key: + The secret key to use in the symmetric cipher. + Its length can vary from 5 to 56 bytes. + :type key: bytes, bytearray, memoryview + + :param mode: + The chaining mode to use for encryption or decryption. + :type mode: One of the supported ``MODE_*`` constants + + :Keyword Arguments: + * **iv** (*bytes*, *bytearray*, *memoryview*) -- + (Only applicable for ``MODE_CBC``, ``MODE_CFB``, ``MODE_OFB``, + and ``MODE_OPENPGP`` modes). + + The initialization vector to use for encryption or decryption. + + For ``MODE_CBC``, ``MODE_CFB``, and ``MODE_OFB`` it must be 8 bytes long. + + For ``MODE_OPENPGP`` mode only, + it must be 8 bytes long for encryption + and 10 bytes for decryption (in the latter case, it is + actually the *encrypted* IV which was prefixed to the ciphertext). + + If not provided, a random byte string is generated (you must then + read its value with the :attr:`iv` attribute). + + * **nonce** (*bytes*, *bytearray*, *memoryview*) -- + (Only applicable for ``MODE_EAX`` and ``MODE_CTR``). + + A value that must never be reused for any other encryption done + with this key. + + For ``MODE_EAX`` there are no + restrictions on its length (recommended: **16** bytes). + + For ``MODE_CTR``, its length must be in the range **[0..7]**. + + If not provided for ``MODE_EAX``, a random byte string is generated (you + can read it back via the ``nonce`` attribute). + + * **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 not specified, it will be assumed to be 8. + + * **mac_len** : (*integer*) -- + (Only ``MODE_EAX``) + Length of the authentication tag, in bytes. + It must be no longer than 8 (default). + + * **initial_value** : (*integer*) -- + (Only ``MODE_CTR``). The initial value for the counter within + the counter block. By default it is **0**. + + :Return: a Blowfish object, of the applicable mode. + """ + + return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs) + +MODE_ECB = 1 +MODE_CBC = 2 +MODE_CFB = 3 +MODE_OFB = 5 +MODE_CTR = 6 +MODE_OPENPGP = 7 +MODE_EAX = 9 + +# 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/Cryptodome/Cipher/Blowfish.pyi b/frozen_deps/Cryptodome/Cipher/Blowfish.pyi new file mode 100644 index 0000000..a669240 --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/Blowfish.pyi @@ -0,0 +1,35 @@ +from typing import Union, Dict, Iterable + +from Cryptodome.Cipher._mode_ecb import EcbMode +from Cryptodome.Cipher._mode_cbc import CbcMode +from Cryptodome.Cipher._mode_cfb import CfbMode +from Cryptodome.Cipher._mode_ofb import OfbMode +from Cryptodome.Cipher._mode_ctr import CtrMode +from Cryptodome.Cipher._mode_openpgp import OpenPgpMode +from Cryptodome.Cipher._mode_eax import EaxMode + +BlowfishMode = int + +MODE_ECB: BlowfishMode +MODE_CBC: BlowfishMode +MODE_CFB: BlowfishMode +MODE_OFB: BlowfishMode +MODE_CTR: BlowfishMode +MODE_OPENPGP: BlowfishMode +MODE_EAX: BlowfishMode + +Buffer = Union[bytes, bytearray, memoryview] + +def new(key: Buffer, + mode: BlowfishMode, + iv : Buffer = ..., + IV : Buffer = ..., + nonce : Buffer = ..., + segment_size : int = ..., + mac_len : int = ..., + initial_value : Union[int, Buffer] = ..., + counter : Dict = ...) -> \ + Union[EcbMode, CbcMode, CfbMode, OfbMode, CtrMode, OpenPgpMode]: ... + +block_size: int +key_size: Iterable[int] diff --git a/frozen_deps/Cryptodome/Cipher/CAST.py b/frozen_deps/Cryptodome/Cipher/CAST.py new file mode 100644 index 0000000..84eb88e --- /dev/null +++ b/frozen_deps/Cryptodome/Cipher/CAST.py @@ -0,0 +1,159 @@ +# -*- 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. +# =================================================================== +""" +Module's constants for the modes of operation supported with CAST: + +:var MODE_ECB: :ref:`Electronic Code Book (ECB) ` +:var MODE_CBC: :ref:`Cipher-Block Chaining (CBC) ` +:var MODE_CFB: :ref:`Cipher FeedBack (CFB) ` +:var MODE_OFB: :ref:`Output FeedBack (OFB) ` +:var MODE_CTR: :ref:`CounTer Mode (CTR) ` +:var MODE_OPENPGP: :ref:`OpenPGP Mode ` +:var MODE_EAX: :ref:`EAX Mode ` +""" + +import sys + +from Cryptodome.Cipher import _create_cipher +from Cryptodome.Util.py3compat import byte_string +from Cryptodome.Util._raw_api import (load_pycryptodome_raw_lib, + VoidPointer, SmartPointer, + c_size_t, c_uint8_ptr) + +_raw_cast_lib = load_pycryptodome_raw_lib( + "Cryptodome.Cipher._raw_cast", + """ + int CAST_start_operation(const uint8_t key[], + size_t key_len, + void **pResult); + int CAST_encrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int CAST_decrypt(const void *state, + const uint8_t *in, + uint8_t *out, + size_t data_len); + int CAST_stop_operation(void *state); + """) + + +def _create_base_cipher(dict_parameters): + """This method instantiates and returns a handle to a low-level + base cipher. It will absorb named parameters in the process.""" + + try: + key = dict_