Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.6 and 2.7, Python 3.4 and newer, and PyPy.
You can install it with:
pip install pycryptodome
All modules are installed under the Crypto package.
Check the pycryptodomex project for the equivalent library that works under the Cryptodome package.
PyCryptodome is a fork of PyCrypto. It brings several enhancements with respect to the last official version of PyCrypto (2.6.1), for instance:
Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
Accelerated AES on Intel platforms via AES-NI
First class support for PyPy
Elliptic curves cryptography (NIST P-256 curve only)
Better and more compact API (nonce and iv attributes for ciphers, automatic generation of random nonces and IVs, simplified CTR cipher mode, and more)
SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms
Salsa20 and ChaCha20 stream ciphers
scrypt and HKDF
Deterministic (EC)DSA
Password-protected PKCS#8 key containers
Shamir’s Secret Sharing scheme
Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace)
Simplified install process, including better support for Windows
Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
Major clean ups and simplification of the code base
PyCryptodome is not a wrapper to a separate C library like OpenSSL. To the largest possible extent, algorithms are implemented in pure Python. Only the pieces that are extremely critical to performance (e.g. block ciphers) are implemented as C extensions.
For more information, see the homepage.
All the code can be downloaded from GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pycryptodome-3.7.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d6613ccd561eb6ef7029d59a47f58e63d840dcee0ed2eda19dafceaffe1e544 |
|
MD5 | 0e58651f3a17601b8a5a67d8e8900ceb |
|
BLAKE2b-256 | 2c85da9e7a2c860aaad7039dd919eecf3f8a4dcd1b2cab2a3f824c9425a87786 |
Hashes for pycryptodome-3.7.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06b779be9736710c109234f28ebef90ff6615c70c335e782d4f6d983c0c66b57 |
|
MD5 | a111894466ce0b55484760f2e8235772 |
|
BLAKE2b-256 | 42629254365c39d2ed6ca3c4bab59f96a385035d1589ef57cebb7e41a7277516 |
Hashes for pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 825af2416abf8be0441c2b632d4a0825ce96033cab36b0ea008a71afc7e6ca17 |
|
MD5 | 3aff8bac6ff7ee226ba5c0f9f193a4f2 |
|
BLAKE2b-256 | 9e55038b18574705a86548e0008e4ea88a80393a370068e8a67c28becf2f4865 |
Hashes for pycryptodome-3.7.3-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7eb9ffaf5757f76c25761fc6fce2aaecbbaf145c0743bd146d86ba038899bf1 |
|
MD5 | 73b5a816fea7059fe05f741650687571 |
|
BLAKE2b-256 | 29013dd45619f03ba06ca21d8a07690e9078236d2de302e9d8f342f4e8234dc5 |
Hashes for pycryptodome-3.7.3-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8403b5adaabcaf7594331ce99a5eb834d0de5ce8f29d174db3f420b0fc450b77 |
|
MD5 | deb9f0538f5604eae24a19cc4f5bde6d |
|
BLAKE2b-256 | 6faa1b665ec72d4583ba2c6bd2d57c0379a34daf21dc2c06cc18cb658b392187 |
Hashes for pycryptodome-3.7.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be2403e4b65272516d7b3eeed73de0dbddf9802487c6faf2b202679def520c54 |
|
MD5 | cf21f8f9aef99906daf316a6f92d234d |
|
BLAKE2b-256 | 29b5d59247a047edb4bc46b596f6321a71369f1f0d13e5b7fabef23f72cd2579 |
Hashes for pycryptodome-3.7.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca78f78dde52ccd1b4654d8911d9b33015bf3cf54385a664f248a11af7896d44 |
|
MD5 | 70a5d4ed369219bddea6d760d7deb93a |
|
BLAKE2b-256 | b3f534ef9ca604ebd9ef07fd1d27ce0edf080983b16e64a58e699d666b2fffd3 |
Hashes for pycryptodome-3.7.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f162644a8618c85cc29a3b998cea76c790220677461c9b6fffcb8fc7b0ae4335 |
|
MD5 | 42b50eb1dc7189c860e6d2d262a39b11 |
|
BLAKE2b-256 | 6dcf4b66bf1ac2484ca39599b4576d681186b61b543c2d2c29f9aa4ba3cc53b5 |
Hashes for pycryptodome-3.7.3-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db53ea88fb38e3e054c2cb7d765b5dc4cea411b19be336e748b9b29f1b696ee5 |
|
MD5 | 0d5d3ff32b64dd46d9bcbd71e4f2c426 |
|
BLAKE2b-256 | 92b48cd8c01c67f102dfe3b50f6539885707b6931c3b43d88c4e25da6738ae55 |
Hashes for pycryptodome-3.7.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 624de350bc8f346da0f536b1dee6bd19b40c99fb783ba1ed09caceb783904fca |
|
MD5 | f68681e2f73190c82673a32d1d34fbb8 |
|
BLAKE2b-256 | a9a61c6889bf1664894e38cf1d2d739fb256257eb1391f32a9dc77d04dfda98a |
Hashes for pycryptodome-3.7.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c02ad68c49d959f724f26a4861deefc4aad25a5e970e40dedeeaf0627140605d |
|
MD5 | b8b24dc04c3eef5efcfb40094f22e660 |
|
BLAKE2b-256 | e799737f42481f86c8b346000461ef54a4e7451444a33ed93aa33861ac9d0f8d |
Hashes for pycryptodome-3.7.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97e2fa022e2e92afbac4d9bc3c7263f7e6813b01b88398d7eb48dd000cfc81cb |
|
MD5 | c353aeaa5e0814e66e4aca26f3e83929 |
|
BLAKE2b-256 | 0766317e8452166dddeb2fb4342cebf09704bc28e5a9ee3baa0f822d8ecf155f |
Hashes for pycryptodome-3.7.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee5a6bba5a7517676a6afdf98ae4f65440132ed4a736c7c1fe762b464365a900 |
|
MD5 | 6839398d772de18ee19cb22677b87824 |
|
BLAKE2b-256 | 8009d4ec74b13bc5f683aa67a71659619d39b2577c18922d8c9563b3623e9a32 |
Hashes for pycryptodome-3.7.3-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16f38a3d9735054cefaa0a5e272395aab585e7eb585cb1609cbea78e69a8da61 |
|
MD5 | 5f70bab299bd807c00c9dd05a9c4dee8 |
|
BLAKE2b-256 | e5c078d860a92861135e8851b43c1f1d0fd4126e8bf2c245fafe94e8350ef148 |
Hashes for pycryptodome-3.7.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 737248b34df3231ba77fad50897a267cc0718a3ecd71b1eb9d92605a2d12d32e |
|
MD5 | 6c47fd04d61f42afd8e4b4324879bcbc |
|
BLAKE2b-256 | 644ce7bfd352e7c6f054b34f6bd2c72778ecf4540d26be58cb4f0975ae308c6f |
Hashes for pycryptodome-3.7.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 733729141cf2e0706188f905fec9b27d40dd5a8e5ec232f95b82437e15c9ebf3 |
|
MD5 | be89c7f6fb36fe379ffc418af6e272ff |
|
BLAKE2b-256 | 61075beacd471fe103d677a777a64c7e2a67a441b975593bceebefaeccd4b3b1 |
Hashes for pycryptodome-3.7.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a94ccb190cf8b1e0352d2b5f8984a44b3da0dfffdce21c4f3a6b8dc84d95e17a |
|
MD5 | d5de3670927df5bfe72ffc33653fa07e |
|
BLAKE2b-256 | f8468d490272c8f0c89e0be09d754bf12137721dad5553dceefaafd47b141da9 |
Hashes for pycryptodome-3.7.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f37f03864dc05b70ce11c023dea78f6af4f19adb48651976d512ba4d7210942 |
|
MD5 | 807d48b276e2b8d840499bb61b92636d |
|
BLAKE2b-256 | b3f85b9ffc7b45f246f26f89a66f86763d7c7087d3d4a14a42ba87ca8081f014 |
Hashes for pycryptodome-3.7.3-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0d41c7338753e9e12bf685c7b5c0c8d2df070c6af8b7e7dc8fa0ccab20a4c05 |
|
MD5 | 1f802de8c5a6f54fd33807bc71606c53 |
|
BLAKE2b-256 | c1ef14cdacdba810840b9f442a833ddea397474b77962639382fd772f857480b |
Hashes for pycryptodome-3.7.3-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6ab3c50b360160c38cb833f8855a42b9aa05ca30366a99bece8f161fa0c622b |
|
MD5 | 8ad46c3a3f67acb8b0eefb6e0eb31031 |
|
BLAKE2b-256 | eb1dc9ccc272e2160ff267ab01fb808b8502e10d3747ff7c97c5c20ac053a7ba |
Hashes for pycryptodome-3.7.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9671b3ee8104deabee682f40540d65faf098bccb4d65bdd70eeccd87346856d |
|
MD5 | d08de61404b3b206eb2da270a8c4c0ab |
|
BLAKE2b-256 | 29680ee43d649a2f748f805c427558e3ec8d832faa34ca1f369195b274266e1d |
Hashes for pycryptodome-3.7.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da05447b79754f703e53dae7b381d82234e062b5ca03cb96e64adc887d508dfd |
|
MD5 | 443ff55cf4fe89153104d8905b7e12f2 |
|
BLAKE2b-256 | 0874e0b956fd98ce5e3e3b3c338ff1ea9fb56a87b66188d74accaa500ac2eac1 |
Hashes for pycryptodome-3.7.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce889584b07174047b554c17df9c48357134c48b517ef7008599e5677919e8d0 |
|
MD5 | cc0b58de2659e9dfcb04b4b88f2d5702 |
|
BLAKE2b-256 | b582283d614a39a3fa8915abf1e4253c2bf0a1b0879eb8a4c5e70f06c82b92ae |
Hashes for pycryptodome-3.7.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 861442e3bc8680b47c7c9bfcd34fd9a3683cd179e3e4eaaba13c60af2ce3a8d6 |
|
MD5 | d899a37df5d010e7902895770f86cd07 |
|
BLAKE2b-256 | 77c7f058abdeabf56a6213326083800a37299f0c00809c1851c93a2e89b03c18 |
Hashes for pycryptodome-3.7.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cfa2a1d9ec697b8924729e86443d2b8fd8dbad0ca4cd322e9507d8b77fb71a0 |
|
MD5 | 1545cd56b6421266beb3fa614f4754f6 |
|
BLAKE2b-256 | 544f26d4b8a9744e30091d0cbfc1846427696f5a98d0e8fcf8fcff42fac93442 |
Hashes for pycryptodome-3.7.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f9b9dbabf286e35a6c4a3724fe48fe977acb0005aa6f08318960ac287108c1c |
|
MD5 | c0b961327b746c28a59c73bc03a013bf |
|
BLAKE2b-256 | 01c549cc9673015701927a975b8a6cc3c1ac4a35f81ec1e16851702f7faf1c13 |
Hashes for pycryptodome-3.7.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23df2d665c7f52ddf467d405de355b1ffbd08944442677bb072b33599748e09d |
|
MD5 | 554612b8b7e590e4bce45f12edaa848b |
|
BLAKE2b-256 | 0d07ec19dba828ee2cc40bcbd54de0e036605ed7205969a7da118a74ca40a7c6 |