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.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c3ddad19994247a1c00e8e30c3da00820627ecedc4aee5865967f84bad6f958 |
|
MD5 | d2079cca39377f9f7ab4f7ee54d19a75 |
|
BLAKE2b-256 | d9ede86eee912d61decfed803ae2845765f1869858dbb9104f37770417f37566 |
Hashes for pycryptodome-3.6.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7180dc3c3e002af1fb44bc7265a2aba4a318b0b00850d66cb935f90032529753 |
|
MD5 | 5221c3d7380566dd4cbdc8c22c4c1299 |
|
BLAKE2b-256 | a862cbc8e06e20c24ae4b2319ae64217a7f6c3395ef3b525e8eaacff239653c7 |
Hashes for pycryptodome-3.6.4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f9caa51b039cd010eff75bf5dbc8dd995c8b45b6e4e8e54f5161960dbd8e9e3 |
|
MD5 | 381d6768d7260f02e51a7549d7e85276 |
|
BLAKE2b-256 | e824efb31323f664d5c95cd91ee70ab4fd33bdd3fa166da20d1a93d6fe9bc537 |
Hashes for pycryptodome-3.6.4-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1569e5e0d79730b60a0c08120b3a84ce5ecd8461c1c8b76ebde49b423296066 |
|
MD5 | 7842b3a98b9d95369645112bb156181c |
|
BLAKE2b-256 | b5ebe0fa44f1f53255ea934fb3c93cd331df7112e68e69f0f6674cf856fc4f5a |
Hashes for pycryptodome-3.6.4-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c41c2167292f4bea115c9a566728ecdc05b8a6b0788c734a32c1fc9425b2bc69 |
|
MD5 | 262b61e1451b507a588f7cca86b0021e |
|
BLAKE2b-256 | b312769171ae003ff0a7cdb81d924d8bc913cd2311dad88d48b14a918855a13a |
Hashes for pycryptodome-3.6.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eda82b564990e1d58e6c0d6646581aaf5b50567b05130efe71f3c6be0e11bf38 |
|
MD5 | b47694821308d28351329a08513a18a2 |
|
BLAKE2b-256 | 6a45851be2583091d48541fbbe20935bea649eb680a83238236514015921f132 |
Hashes for pycryptodome-3.6.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81a98457740c7eb6c9d90d1f8e84264b3446bbda9019f561e86f0972be30feb8 |
|
MD5 | 8149de9e968de1e73b8eff456b62eaf1 |
|
BLAKE2b-256 | dc7983df6dab2cc3d2a53c527d02ab0ca0419da875cde5ebb01902e00d6086cb |
Hashes for pycryptodome-3.6.4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b64da7a09ee9edb912b61e88282dbe2a8f10bbc2a58f33eef755b4b3274521b0 |
|
MD5 | fd165cb6519ea501528b18a6b849be4f |
|
BLAKE2b-256 | f337ee6b25ef78a5c4399ef2a23d60404be897e13568d9c8999c282b61e3d14e |
Hashes for pycryptodome-3.6.4-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edfee1d19a7865add83463e92c6a7810e824ae9a10c9abb95b1763263f7e247c |
|
MD5 | eee34d7f55630e6e7fb698b6618358d4 |
|
BLAKE2b-256 | 611e80ad85e2a986877e3fdfc6a8efd7078cf1db0369c895091f6c66b6cee401 |
Hashes for pycryptodome-3.6.4-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 743c38d6331dfb9e672397306dfaad4b0524afa8ff1d07271ff50d6da70566e0 |
|
MD5 | 764e43cdffa03d9fde086acfb4d1d173 |
|
BLAKE2b-256 | 076c9f8fc7529efe2ed7f27b3728e21de28a67c60ee61efa71f157460ebab0c4 |
Hashes for pycryptodome-3.6.4-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b064cc2bd8058b810b6bae240eaa6334af45094a46a6443e956e6a59097f5703 |
|
MD5 | e677d2b8086c4e4a3e26cf05136840ec |
|
BLAKE2b-256 | 44bfd56bb1fb88f7790b9acb00439235b43c72e5ab650c32f7e443e62aab938a |
Hashes for pycryptodome-3.6.4-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9906d10968e96bc98dd043380b982373baa6d1233f901d6b83fe604a1314c61c |
|
MD5 | 168f7caf0d1b9e962be8c5746f05429e |
|
BLAKE2b-256 | 9e0084bb55db81f1e5e61b9d795cdb22f0bc59c1db2d5e3c1788e941672b33be |
Hashes for pycryptodome-3.6.4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6245567a6ff07eb518d3ec7bbe4a33cf2b4de9a50083a906b199488359d754c4 |
|
MD5 | 15e005f33dfa109152eb33fb0e811338 |
|
BLAKE2b-256 | bf60520c09d88138bdef60a4d8911d3375521b3c30f41c57fce73a51a01b9318 |
Hashes for pycryptodome-3.6.4-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b69303ad2c3beca33d872dc8c1a73e83cc8733233d3454a1266f09d6e0cea9ff |
|
MD5 | 46dd494eca5df41834a48d6460902a9b |
|
BLAKE2b-256 | f7f6b6c9536a6dba7fce14e3f9a1fbd4bcf434da7829ea69c6be486409ca4123 |
Hashes for pycryptodome-3.6.4-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8acea6e8301176c5f58aee3c915958ea15523b67e3a9159929e3699608ec11a |
|
MD5 | 9f3965e71f77688e00da6633bb98ffc0 |
|
BLAKE2b-256 | bd29d78bccc6f5a59081f6e9f554f20f058649bdf1d764213a7b5de854b6fa87 |
Hashes for pycryptodome-3.6.4-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87f990b915e794e4a7526703696f03adfe99cbf72523c0eb40a06453e6f21ddb |
|
MD5 | a36f631c0672a91aaf4e5be4a4a24c3f |
|
BLAKE2b-256 | 62df5db001bd4c4bbf7665a43ba1539d07468d745862a6020056bf4280ab6df1 |
Hashes for pycryptodome-3.6.4-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed336bdd7bc1f227eb06964531933bfed6470012608bfc5eb6aaf6ddffe6137 |
|
MD5 | 66193df19b0cbb6f7d6f3b91cc5750c7 |
|
BLAKE2b-256 | ac554c658c2540441cae6a0c68dafaff0501c895ef4addb2e09bcaa6a44f0d2c |
Hashes for pycryptodome-3.6.4-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6211dd4025496441d5b61cdf4d3aa70b7db0413c87ffd79d9ad1e0ddf0634bba |
|
MD5 | ee0242db8b5c24504a31da4ee2d90f4f |
|
BLAKE2b-256 | 8a3d839db7c2d6e5713bf992a66bdad4127f3cf405db0048aa1613f49e33bb5b |
Hashes for pycryptodome-3.6.4-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 010d6ec31de6416db7136f1b56ca85363e2980986a5d7dd0c18797e4a3a54184 |
|
MD5 | 8902625fa98acaf576a127b8db179d33 |
|
BLAKE2b-256 | 3c329609296cb370ae7fe949eb2bd069cff4a1caa1f8e2039a38b9042d05c7b4 |
Hashes for pycryptodome-3.6.4-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 416ea498d5fea189ceaef3cf9526939b5fdc7d06c8a42f47d5bb7938b74bdb07 |
|
MD5 | ee48877a42511927c60d0217a41a9ce3 |
|
BLAKE2b-256 | feb2a7d05e5d294d2bb0b10e092140f66e46ea5cc7f292da1e7cef8f621f4103 |
Hashes for pycryptodome-3.6.4-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6feea8a031701919983929e4a9c2ee36469d050cc7fd77bf86f364b0f9a961e7 |
|
MD5 | a77b2e9f347b506ffa8ce632341a3a5a |
|
BLAKE2b-256 | 4113fdab805660abe7960ac27abc9ab89f188c24f387ac8103ac68463fe28e62 |
Hashes for pycryptodome-3.6.4-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aabdcc2a42c05614bd9b46d475237226e5127e352cae41a339f864cc8ec6f8c9 |
|
MD5 | 7dd3e5ce28d54d6ab010611ba73a36fc |
|
BLAKE2b-256 | d8128fb59de8e9880e1cf786c8630a9e807d31e235f44537ec49012987aeea64 |
Hashes for pycryptodome-3.6.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62af7c01cbf67de60937c98073767cea65c470103a4775b46d5ab09924d49bab |
|
MD5 | 51a80b503b7bea7af8cd3dcaa94693ca |
|
BLAKE2b-256 | ac535e5fe0ea26dbdc8db667301438d58d38e6be5a7c3f787ef3a3c1426bd8d5 |
Hashes for pycryptodome-3.6.4-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 659432b58f5eaba280ecd139fe8394d369585224a1edfa7920a0f7c77bf9f8dc |
|
MD5 | 7c5be226c7b7c2a6f93f1ee3383e7908 |
|
BLAKE2b-256 | f0e0558f592ddd07d30da60bd9603da4464c5e80cff2ae37943ef6e132cbf686 |
Hashes for pycryptodome-3.6.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 264b3754f61f338cc4cfd6c9e00f5f8778fce73e20a37f4551ed0fa7fa1a5f25 |
|
MD5 | 8b100f3772a9316e8377d2f180c7e2c9 |
|
BLAKE2b-256 | 206cace6648bb69e31522b7f0095a8472916b0f3af358cf79d8368e6768a72de |
Hashes for pycryptodome-3.6.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea2b9f7edd1ac89d8445a1800f52b2e506e3b9d643b95a44f53fb8f59cf167fd |
|
MD5 | ae9246d0a8c98cc8a943eb585118a397 |
|
BLAKE2b-256 | fc92e2f7243376a9957fbb5b7704c20a1d9508fb1a0bfe2c35ba79115ceb95b8 |
Hashes for pycryptodome-3.6.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3ee89825098c6f36bac7d4a41fb8a699a3922ac8c309b94cf433f77b6bc19fa |
|
MD5 | ab09c688c4eec3879fb9af06d435ebbd |
|
BLAKE2b-256 | 1d4f60b5bb34888dffdb0fc8db6740b5a037bf039570a37b8f5173ee24a33f32 |
Hashes for pycryptodome-3.6.4-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98972d57dd9e7582ae608fedbd1d5ea0a60e58d586ad3a257bd091941498af6c |
|
MD5 | 0889239d64faaec5fde1da54c58971ad |
|
BLAKE2b-256 | 8afaf1a6c8b8189e4724b2b7c9e44023bc4e17596db427cc9616f63a3ecc8c59 |
Hashes for pycryptodome-3.6.4-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53ffdd13fce5155bbd52f82738794ed8ae2ea9619c31931ed6061618e218c738 |
|
MD5 | 6dbe1b7cdf227ea6f6601092a8cd475b |
|
BLAKE2b-256 | 7f8eb494bc3b62151ce5ce917d6cc9e2e745e452f408804f4e17953a19ed92ee |