Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.4 or newer, all Python 3 versions 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.6.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b5a2680008da3ac0cef2d3661597e0cbf8a3eb19eed35b859fd67e2de63eb85 |
|
MD5 | a13e81d3b023cb74abec9820a1f6c1d4 |
|
BLAKE2b-256 | 82bdbd192c1314bde108a91295fbec02bc20a816330feb10273aa36d885004ab |
Hashes for pycryptodome-3.6.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e850e07f54dc3de9a1efdd59d227fcd1cb30cdd307dafdc647c79e8f30cf5032 |
|
MD5 | 53749ab93a5b65be3f52544e2db6aa15 |
|
BLAKE2b-256 | 3c940c7715296b9a9ada38f46504482368e674bbfe5b5774b61bb915ea5a023f |
Hashes for pycryptodome-3.6.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e51da4ef9d9e2695a04044152f380c2db17adc9fc6fad8e24d863ead9cd548ed |
|
MD5 | 2af2634ba02576ee5bad64b86c355e8c |
|
BLAKE2b-256 | 6830e64991296fda8ebd682b34185a044032ec933ffaa580fff9735aa2e3b888 |
Hashes for pycryptodome-3.6.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cdd73492859d853f60b8185715312dbca465879661e28d354d1cf5ea11860e7 |
|
MD5 | f5fc88037c3812beb65e8114df370533 |
|
BLAKE2b-256 | 0cc48b7b04ec5766f70f71e56201dca51642526662686c656da76e59fd462037 |
Hashes for pycryptodome-3.6.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5e19802295e63bdf83bb92849285c01f7167840efb1c1e08507a50b10ba7efa |
|
MD5 | 8c6c04e845068d0ff1d7c879348ba00e |
|
BLAKE2b-256 | 9c838f8a9e94d3cc495dd49082ac79e366b368cd10c8d25734fbcea59de93e5a |
Hashes for pycryptodome-3.6.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc569682f012b1f62f8d28d8f9bc71f1de67648cd1bc124ef8ccf8db4edfc28a |
|
MD5 | 481a8936a9b5a98db0264869999f24ac |
|
BLAKE2b-256 | efc93e31ed1ba87fb418067d6b450b0a2d9158cf8e2b86b6448ed56ef811e425 |
Hashes for pycryptodome-3.6.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ceb3e87605c4f0080115a8a00abf45f5df27b0166a37fd669fbff4523273cfc |
|
MD5 | 6a68bef1107a85a3c644a14b77bc2217 |
|
BLAKE2b-256 | c260d0508928814a4507d39dc615f6a8d032498760bece141e313470c6984748 |
Hashes for pycryptodome-3.6.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97af76f5200f15e97cac58d77f319dec40b4bada98de697c91a9517e63b41d1a |
|
MD5 | c17621110506a98b6094a55ca9b515ef |
|
BLAKE2b-256 | 0923561648462715145a7a0d0939b56eca66625b96be5070ad93a195f7a0e0c7 |
Hashes for pycryptodome-3.6.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d34fe5134eb5d62368e21e6f203ac1770bc7273e9536c4a280121312c2de53a |
|
MD5 | 23510fcc2f6b49cf858af4563fede89e |
|
BLAKE2b-256 | 3e64dbe440a16dc20c1f097dcdd4d0a94420ba7e9c4249e8ea59a91badac2b29 |
Hashes for pycryptodome-3.6.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adb54316998337f315520bbd8ef4d8bbd940b4ddfaef8ba1db3c137c5e499399 |
|
MD5 | e012528653003318e2b583b1b501eb5a |
|
BLAKE2b-256 | 3cfa61223992e006fcf8172edc44ca0f0397433d298fc2cd583d0722201d3f88 |
Hashes for pycryptodome-3.6.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49a71eb990af30ff6276cfe201eb83ed3640ae989c1b5973f7b55a46c94232d1 |
|
MD5 | 6d58ef17c9db4d653af9e4f9c0f0956e |
|
BLAKE2b-256 | 46638ab58a0b4ae89086ffa0242fabd8b13fb2eaad4fa02a24780aa019e14159 |
Hashes for pycryptodome-3.6.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4a3b710287eb1fc3e2cc1af018063f003530dff00c9ea4c55ae19bc1f3923cc |
|
MD5 | c5f5a3a53d0df8053a8ccd9801fb21ad |
|
BLAKE2b-256 | 9af8d1d240081539abe30f9a1a5ba05f4e36f39fc3c72499d35f45ccbe456431 |
Hashes for pycryptodome-3.6.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19d81b92bff837cdade735b9023808556bb4868e1ce194dad4d5ec4e2b2851f3 |
|
MD5 | c4e83275a4e0605f657d4e0c8023c48a |
|
BLAKE2b-256 | 93d2e0b0ae182c5c8be8a17ddfab02987c25f05a217ac33a1e43d6e211e2dd14 |
Hashes for pycryptodome-3.6.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 733d5eb7e5ceed8b9d0b3c24c81f52c04cb5de6786461388204fceefe4456aa5 |
|
MD5 | 32fefbca7d92a7d45e9d814f99805bc4 |
|
BLAKE2b-256 | 197b6d67fe230389496d0470e68aedbd541608a94d1b563f4710ea3c381fbdf3 |
Hashes for pycryptodome-3.6.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2354a77051ed4a2959ce2aac508071eb3e42fc348ea39228b2eac335990bf508 |
|
MD5 | 383c1cfec93aae7173e63ec7d4f7e315 |
|
BLAKE2b-256 | 96ddca3973324c3ace5ef65518e040038d3660f3a57f62a6c1655a11be67bcbf |
Hashes for pycryptodome-3.6.1-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27bd2878200690b050dca34f505b5c623532324b3de40267c1484784063134df |
|
MD5 | a3c68e1d59e7752a99b13bb34b0e1dc9 |
|
BLAKE2b-256 | 3ead1be39b18d582a9e537ccc7b7995157f8e9fc3e1dae7a6ca025d1a6cbabae |
Hashes for pycryptodome-3.6.1-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c08c053eb8716bbbd5e13e38f453b9e46a063e68df8659f3c421dcb7519fd381 |
|
MD5 | bf8cd47733dc544abb78a7038cd2feeb |
|
BLAKE2b-256 | e1d63d3631546012336d540babfbce28b2672089888bfc9a1be503e52f9ff935 |
Hashes for pycryptodome-3.6.1-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a561b59e0c3548eb649af381b7c38c6fd8392bbd4d0a8214794b2b761f405af4 |
|
MD5 | 8398c413fc1b4619d1f763c13d87e10a |
|
BLAKE2b-256 | f62f0d7d21548a7043bb765bc480a995e0b0c9dd19ec96575c4ad8bce1361c53 |
Hashes for pycryptodome-3.6.1-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed94cb1b4bf24be734f2bf2db3e8ea75f3914d2f8e684291bee54bbe4a5a9151 |
|
MD5 | 6efb311465236b6e51b48018d3322cde |
|
BLAKE2b-256 | b2b0df3be75d60a27f0b7240935d59bc8d4ed56630cbfd132f5fead30edba3b0 |
Hashes for pycryptodome-3.6.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c73d3798fe2946953768b788ce554c0d4b390780f5e73d63bd833241af27bfe |
|
MD5 | dea3a8dc1c845754babda876b0bf3f5e |
|
BLAKE2b-256 | 96fa4b1fbf2383b7d2f9f4bf05db79432f698884a8ea32c3220af65508b59e79 |
Hashes for pycryptodome-3.6.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97cc46ff02b99dafdc2e0385b325cec0f8a15bf8b285d6ed1d7e4a3bc2067ce1 |
|
MD5 | 501a0cfc5648c16ce5fd6d80eae5b5eb |
|
BLAKE2b-256 | e51e2bee7230e5b32fe85a1f567aac0e5b5c5667b9530457808833441efd8ab4 |
Hashes for pycryptodome-3.6.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab2c633bfc23cf41be9281228517cb6f87879f4f1aeb154ed72bd53ab7cc83e9 |
|
MD5 | f2de357f9156f49ab242edc120d78428 |
|
BLAKE2b-256 | 03fff6b79048e286a05c68bd1a6182c119b41f409cbf488f1b6b8024f05e0f33 |
Hashes for pycryptodome-3.6.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 043c82cd3dd3120286a1b325ace93000cf52abb13a067c3ecb6220f874fe4c30 |
|
MD5 | a58dab9839038737d4b24aa4dd54a7ec |
|
BLAKE2b-256 | e53e5480f6d39fcbcbcdad9724fa1b526c4992e62e84f1977c1eb5ed6805b219 |
Hashes for pycryptodome-3.6.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebc579c41fe26748dc1bad4f9105f08740ee28826293a28103b3875968695a5e |
|
MD5 | bbc3547bcea01ab0fbce080ac9ef8f35 |
|
BLAKE2b-256 | 72a4c233e1e2dff7e71ea94a97c1558b0ec73fbbc80c2c6c3fe105b31c82c2a4 |
Hashes for pycryptodome-3.6.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcfdb66d6604882c3f96eea922552c2487cc0aec4b883cd217b9d341d2f8fad0 |
|
MD5 | e8336ee336ba16405f821abdfad39550 |
|
BLAKE2b-256 | a5d545aa0d23344ee3901f8550cd8452b75d2400823070518e1c4db3122a694d |
Hashes for pycryptodome-3.6.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 322f239e51fda80233762400a8975ab728639b571fa58545b95b9c44042af010 |
|
MD5 | 4dc4b1af97b8d38d8653b6c7e6a744b4 |
|
BLAKE2b-256 | b3e7a6977496a8f18788e789047f1a8b7033ffe4d5a5bf591469033127e5d696 |