Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.7, Python 3.5 and newer, and PyPy.
You can install it with:
pip install pycryptodomex
All modules are installed under the Cryptodome package.
Check the pycryptodome project for the equivalent library that works under the Crypto 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, P-384 and P-521 curves 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 pycryptodomex-3.12.0-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f6c370abf11546b1c9b70062918d601ac8fb7ff113554601b43175eed7480ef |
|
MD5 | b4f8f6e82cd8ade654be0a3d6515cc83 |
|
BLAKE2b-256 | bbe3cb42ced2a751cffe328f7750740e6d2bdc994c688528d26ed1eb1a85b633 |
Hashes for pycryptodomex-3.12.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c5b97953130ff76500c6e8e159f2b881c737ebf00034006517b57f382d5317c |
|
MD5 | 6694746215aaf5858e9d0d7b1bb9cd13 |
|
BLAKE2b-256 | 531ae4afcb54450ff3aa11b992cd7b094fbff9c7af2306ead9f824c5bb7b8c7f |
Hashes for pycryptodomex-3.12.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08c809e9f4be8d4f9948cf4d5ebc7431bbd9e1c0cd5ff478d0d5229f1bc4ad50 |
|
MD5 | 9769ef5ff3977d011bec66e28c7891d1 |
|
BLAKE2b-256 | f082da68b9718d7d59b855b8cd9b34e1539e1c99d2dda1b56c1087684e52a4b7 |
Hashes for pycryptodomex-3.12.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44097663c62b3aa03b5b403b816dedafa592984e8c6857a061ade41f32a2666e |
|
MD5 | beb12a4dc3c24a567ae725aee5ba66b5 |
|
BLAKE2b-256 | b284da105305a7dd3a94d8544f4812e904438f5bf84e7f06ddc66154efcf0854 |
Hashes for pycryptodomex-3.12.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43af464dcac1ae53e6e14a0ae6f08373b538f3c49fb9e426423618571edfecff |
|
MD5 | cffd934911768bd3e7f61d5fe23872e8 |
|
BLAKE2b-256 | 3edd9ac30310427cee3baca1a79d1217d2f97e75bd33e3ffe5e1e91937839fd6 |
Hashes for pycryptodomex-3.12.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3559da56e1045ad567e69fcc74245073fe1943b07b137bfd1073c7a540a89df7 |
|
MD5 | 04085a414acc94b3072189f000fa4b3a |
|
BLAKE2b-256 | 97b99493d5fc33bbdb6f5e7576324896cd3983396a035b074b7e2e325813799f |
Hashes for pycryptodomex-3.12.0-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e42a82c63952ed70be3c13782c6984a519b514e6b10108a9647c7576b6c86650 |
|
MD5 | d8c8dd65d09155026f0589a9ae051f9f |
|
BLAKE2b-256 | 1353e51bffe1118c2138a514b82cd8ae296168ee7cfaf5db49081770e2dad880 |
Hashes for pycryptodomex-3.12.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de9832ac3c51484fe1757ca4303695423b16cfa54874dae9239bf41f50a2affa |
|
MD5 | 80e390fb25fb30eba50c5d24a69f5095 |
|
BLAKE2b-256 | 0542997cdb2a2ae58ed49e603579db884db39592b0e4f2cc9b3e7096fb677551 |
Hashes for pycryptodomex-3.12.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 676d9f4286f490612fa35ca8fe4b1fced8ff18e653abc1dda34fbf166129d6c2 |
|
MD5 | 21d296cb6f0708ee4045aed3243433d4 |
|
BLAKE2b-256 | e22e54a2c8412cd03a1bf97deb851c29e466d3b46476930449518e474681c890 |
Hashes for pycryptodomex-3.12.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d173a5db4e306cd32558b1a3ceb45bd2ebeb6596525fd5945963798b3851e3d |
|
MD5 | fd173ac9f775690f548b35762ef7ba3a |
|
BLAKE2b-256 | 7a8a55ebcfc996b8bdc02fae3725b70e6475635013ed546dd16c26ef3bb6374f |
Hashes for pycryptodomex-3.12.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88dc997e3e9199a0d67b547fba36c6d1c54fca7d83c4bfe0d3f34f55a4717a2c |
|
MD5 | 85b0700322823b1e819d3d5f9fca8292 |
|
BLAKE2b-256 | c940b31e705c3d0d6724e342a7c523feab79f477a60909b9cad8d34c2130f018 |
Hashes for pycryptodomex-3.12.0-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b0fd9fc81d43cd54dc8e4b2df8730ffd1e34f1f0679920deae16f6487aa1414 |
|
MD5 | bbc0bd0b9905a99dc1c20a995b75b206 |
|
BLAKE2b-256 | 6a5c79c08902eb845d7d580ddd8d00e823d3e5ee51bfb8500355613059b3d3e9 |
Hashes for pycryptodomex-3.12.0-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a896b41c518269c1cceb582e298a868e6c74bb3cbfd362865ea686c78aebe91d |
|
MD5 | d1a77b39f7a3badd3645d6bcefe0f433 |
|
BLAKE2b-256 | 8d6b4173344e17b41245702d58bdbf28ca4f30f665127f1b6062043989e26631 |
Hashes for pycryptodomex-3.12.0-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddac6a092b97aa11d2a21aec33e941b4453ef774da3d98f2b7c1e01da05e6d5e |
|
MD5 | 8fa74d458ecdcd36ce3c216271f0e0dc |
|
BLAKE2b-256 | e9f1846db005b275db11bc307779e6251379e977ad961dfd1aabfc6443a88186 |
Hashes for pycryptodomex-3.12.0-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 097095a7c24b9e7eec865417f620f78adf218162c03b68e4fde194bf87801a67 |
|
MD5 | e9be82c2d2c588f6bd392bf59996f50e |
|
BLAKE2b-256 | 0410762b646d5004ad69afcca9b6dfe22b0e7e2d4cc7c76ad07849926299495b |
Hashes for pycryptodomex-3.12.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d55374ebc36de7a3217f2e2318886f0801dd5e486e21aba1fc4ca08e3b6637d7 |
|
MD5 | 263d009eb7444dbc9d1172fc011ad749 |
|
BLAKE2b-256 | 5b717d3b0a188b36815dd0b7e0da528d4b37d8b44071753f90592fd8b2d9d5cd |
Hashes for pycryptodomex-3.12.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea8e83bf4731a2369350d7771a1f2ef8d72ad3da70a37d86b1374be8c675abd0 |
|
MD5 | 3a411f9e3fdf7fd332ca1f0266eb245f |
|
BLAKE2b-256 | 1647acd5b809728e1c5105ed8e27241c875f6fb0671926c01bb6845981fbad42 |
Hashes for pycryptodomex-3.12.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cbaea8ab8bfa283e6219af39624d921f72f8174765a35416aab4d4b4dec370e |
|
MD5 | 1f85f5e97330a04cebfaf55862abd052 |
|
BLAKE2b-256 | 93fad1151a3c15a5119f15219f0c44b851c8589a26101abba61b6fceaaef9f93 |
Hashes for pycryptodomex-3.12.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83379f1fd7b99c4993f5e905f2a6ddb9003996655151ea3c2ee77332ad009d08 |
|
MD5 | 546adfa29ad87168b3b88ab224995814 |
|
BLAKE2b-256 | 00434ac768c235bda0b1f8df8b3560ffe9f916d828af88301d699e5dbfd19707 |
Hashes for pycryptodomex-3.12.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1a6f17c4ad896ed628663b021cd797b098c7e9537fd259958f6ffb3b8921081 |
|
MD5 | f892678b5daae77ebde579832dbf3f00 |
|
BLAKE2b-256 | 586e7a2c635f0fde7cb67927ac97b14070de916318a5365088d53573bdd966d8 |
Hashes for pycryptodomex-3.12.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4361881388817f89aa819a553e987200a6eb664df995632b063997dd373a7cee |
|
MD5 | cf7d568be7646ca5419f5a7acda615df |
|
BLAKE2b-256 | f7716c76f0eb523a5062873045a2c924594d09fcc53d5ab541ad7228a9a0ca1b |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79ad48096ceb5c714fbc4dc82e3e6b37f095f627b1fef90d94d85e19a19d6611 |
|
MD5 | 766b0b953ceb58e38806ce45593b2b31 |
|
BLAKE2b-256 | c65725e0b76ec1d609f42be65292d67616fb658c48bbead5ec87c37e6911c116 |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c037aaf6affc8f7c4f6f9f6279aa57dd526734246fb5221a0fff3124f57e0b1 |
|
MD5 | 932c3320a07a48ef89de2a3574674665 |
|
BLAKE2b-256 | cf097a0f7ca505fe255ad391618f3db8ab2fb98ce9964c0abc1a7ae489c339ec |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33c06d6819a0204fac675d100f92aa472c704cd774a47171a5949c75c1040ed6 |
|
MD5 | 3da69da490db7471c5e770266d25aae2 |
|
BLAKE2b-256 | 56a8cb329115c2ae68d20248b0c3ec999fb609e647f608ce761ae013d9d1e875 |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5ddaee74e1f06af9c0765a147904dddacf4ca9707f8f079e14e2b14b4f5a544 |
|
MD5 | 9f106d5ee5a599379f3b94b6e931498a |
|
BLAKE2b-256 | c95b873e274bb42d76e3602f011e0f189ea4f5e4ac3d6e947a68be863348631f |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2595b7be43b8b2da953ea3506a8d71c07fc9b479d5c118b0c44a5eca2a1664f6 |
|
MD5 | cefbeed5865a02d159edb0f387f7a773 |
|
BLAKE2b-256 | b0a54f2cf9cf29d90e3b1b00837f271b4249ae6632b0b967ef8e11bf52f7fe7c |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0981e8071d2ee457d842821438f833e362eed9a25a445d54ad7610b24293118f |
|
MD5 | d6ff94c0d08315e82d700be54d5d43c8 |
|
BLAKE2b-256 | 83cfe078460abb5182b7fbf460489384a21fc04904ba4ac4f3e2ed1e750db16c |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bfa2936f8391bfaa17ed6a5c726e33acad56d7b47b8bf824b1908b16b140025 |
|
MD5 | 2078cef28be28ffc9ad6fb11fe6069dd |
|
BLAKE2b-256 | 792c445139aff358827fe0d04317d738b31cde0eab2fa09eb1e244871be02de2 |
Hashes for pycryptodomex-3.12.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bd9d158afa33dca04748b23e7b9d4055f8c8015ace2e972a866519af02d5eed |
|
MD5 | 0b09fedaf1a979d922aa305d1979255b |
|
BLAKE2b-256 | 61539b37e4053a2c738f7223577de74eed63bec2bc08ce53f944616f63273272 |