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 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.9.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91f6479d81f973594eb45374fdc12328f83b71e4b6e01446b03e71d8646642e9 |
|
MD5 | af2b211784bd362de7d4ab4bf560e7cb |
|
BLAKE2b-256 | 85b32b685bb5835a24e35e4f7630f23b272c6fc135433b066767a250f15249f3 |
Hashes for pycryptodomex-3.9.2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8129d59dfb6767001e1451c40221e54c691ba369504839d7e3565f78f38d7048 |
|
MD5 | fee8476d2c17421f3e3b5a41f682b592 |
|
BLAKE2b-256 | 5154685d0297cfc731c539e988b7604f2fca608295d412cae7691978cf36c83b |
Hashes for pycryptodomex-3.9.2-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bbdc086ba1ea5a739d189cef406a90cecbd97b4d60be1b31d27862d1d084ed5 |
|
MD5 | f08be7db22575222cf4bbfc4375c143b |
|
BLAKE2b-256 | 4423a1ccc9928ffc486119271dcfb870c6c49ac6a482559170fe73a2a254e622 |
Hashes for pycryptodomex-3.9.2-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9764868d8ddc0163d02d688f6b94fad36f7be3e05ca0aaed7518e9df2e5e6b3b |
|
MD5 | ef586acafcda0e1d0a30fc71337a3c1d |
|
BLAKE2b-256 | b3b52bd1b3a7bb038ac8692e75d24e29d99c836c377b055bc63ed81d36b9ce58 |
Hashes for pycryptodomex-3.9.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f042cd68184f024a4553283726954c0a61547e68a4b3deedc253737b979637e |
|
MD5 | 2190a67ef9d24417fc49e5a339827ec0 |
|
BLAKE2b-256 | ea8880e2f10fdcfc4d8ec610620f52d458a3424a6be7df4d3eefd1989764318a |
Hashes for pycryptodomex-3.9.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 676702949d592ab591102bdbb5cb70f0882e4d9873301fd637d178184290663b |
|
MD5 | b3dbedc6ed2f89e14e1e97301e83c4cb |
|
BLAKE2b-256 | 32c3ad4b53ab7e81ca1f66e76b6bf245d9095f9c7d5754ce921ecb9bdc72f24f |
Hashes for pycryptodomex-3.9.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2972f68673fb90b9f6bb1e097d67b3847d48843bbee6253bf54b18b704100896 |
|
MD5 | 4f67c31f63dc1e3de4c6466f9e653609 |
|
BLAKE2b-256 | 37d713d8e6af1d14569294dd0ac844337892a9d451e638c3264599e06776c010 |
Hashes for pycryptodomex-3.9.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dee5cf0829a648044f638a0cee3f2d6cd4f6bcec83650b43e3fb3192d585258 |
|
MD5 | 5a8fa30ddbe9486bf17f5afd46c2ab5e |
|
BLAKE2b-256 | 614c62ecaea2dd2020958bb0448291ea5c1392ccd67d7226bdc75b1b0f053d89 |
Hashes for pycryptodomex-3.9.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ff83790e3be88276f427f6f2ff8f37b6baa3903ee51106685c3d2e05b092ba0 |
|
MD5 | ec7d85c02225aa7f6ead132e41860514 |
|
BLAKE2b-256 | ae8d63b0e8f145387c38fa276bb43e9f622067f062f51f9e577de016b69c0b11 |
Hashes for pycryptodomex-3.9.2-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd6e3375e2d1ef688664ab71622ce45f79b69984dcf88a9386d7fe2b6f7c7fb |
|
MD5 | 8f12fc49747ca9f4169a8303d2446cb4 |
|
BLAKE2b-256 | 844b9541bc5ff2e52c5c5cbf4ad0537ce5c768e9bbd7da213af318ab3e1a575e |
Hashes for pycryptodomex-3.9.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 388b8d2179b8caeb7db224fcd97553a30de4961befd8433807dfe3d5ab21733d |
|
MD5 | 2071c4059ae004fc67c969bb17f31fc8 |
|
BLAKE2b-256 | b4242379a57dbf9964459ee5c410d4533f2b3620f99cd23a15642402a953c7bf |
Hashes for pycryptodomex-3.9.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d59ef1e86bdf0e47c4a1b306cf47a9ec8a97878c62ea2e235e31647453647715 |
|
MD5 | 55ea7860044e0bc4eb5c18306da90d13 |
|
BLAKE2b-256 | 5d7bcea9ee33afe0090ecf189b0e3ae186cc1a058c66265eed90d69371e19289 |
Hashes for pycryptodomex-3.9.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ad2db2ba4949aece35f95637718de625f994e6b56ebdec60c144246178ae473 |
|
MD5 | b9580c9d487887b66f5c285349bc5212 |
|
BLAKE2b-256 | 65371aceda51bc7bd9ef1204ff813ff41800bc041ca9755075a7d17ebfe1d40d |
Hashes for pycryptodomex-3.9.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 886fff6de145b149f6a6ec35264dc460694e7514a827434094a3cc4f1bc3bd32 |
|
MD5 | d299fcf6624bf929823c44a7b00dd427 |
|
BLAKE2b-256 | 0676e7c874496a210c4d751166aa911d2d517ef54339a29d5cad471f9795fc05 |
Hashes for pycryptodomex-3.9.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c03bfae9e697bdc7b53bdda783abc72b98681afc7eb77d4b0cdc9767b8ed61e4 |
|
MD5 | ba1a6efff938f427bef5ab6c9186b915 |
|
BLAKE2b-256 | 1e6bc53501fcc6fd900ca24e9599667735ef788889c043efb1c9d4ac0cfa627c |
Hashes for pycryptodomex-3.9.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aeed3e57d628c2271520f9525d1c886c5f2cb83d2501d1d6e614e441e9970555 |
|
MD5 | 429398dd9bbe759fcbba1c93d968c00a |
|
BLAKE2b-256 | b83ea003f49aa8635f1cd63ecc630cbcabaef8ae920ec6f40bb61e4e79b181cd |
Hashes for pycryptodomex-3.9.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2342c45b4aa94b68d905a477a3c40e4ee6f4fd25a83ca1f245f4b8dde450bda |
|
MD5 | e27b6d9e028ce18d580ad4280afc250e |
|
BLAKE2b-256 | 9fb79518029b06dfe476a1d86a6c303a4bb7178183020187937a7f37145216ee |
Hashes for pycryptodomex-3.9.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 235a56223c3418e5bd530822d17e0e4e4f7f6c1335cf978be37ff57d46e7e5af |
|
MD5 | 442dc4e79b75cb4a9554993117462499 |
|
BLAKE2b-256 | b9593a27d49847e231e629db82652216fc47cacb4e63a0fa4dd4ac6340873c7f |
Hashes for pycryptodomex-3.9.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a55b90916f2400e0baf3d6a44e24ba198ffbfdc16d9da67b50eeb285fa27a759 |
|
MD5 | 1bbf729166ec1b90947258603af527a1 |
|
BLAKE2b-256 | c85f5a467710599fc8cbdf76c40ee55fa01b5c19894a0a46f887865350fac698 |
Hashes for pycryptodomex-3.9.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99f566b3c14e52b7421bbadfc500ea8f2fbc41c5b4b2791329ba7b5e56af359f |
|
MD5 | 549835ffcff3ee6cec85e665993bbdb5 |
|
BLAKE2b-256 | cda5e4087f421f3378c983f4d86528fe49a7b53c0b9919e49ca1c6d414ce2307 |
Hashes for pycryptodomex-3.9.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7038ef381057021366dfaafbfbd5fa728407d8521f772467d5679a484b85b49d |
|
MD5 | 7228940f2e42ad613575befe2c86710d |
|
BLAKE2b-256 | d5708dbf221b41560b58c76cb41a11965103b6364cbc3eeda92a42cb0decf1a9 |
Hashes for pycryptodomex-3.9.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e348ff779f4c39acb5dc182d3862c29f6c6aa5a65d63d0d9a5a1a3b70bfb5df |
|
MD5 | 878bba2f9330d44b9bfd13ddb92c7e06 |
|
BLAKE2b-256 | 94215d2721a3ec89f1f5fd603774218c84410843e6ba9277ced4ea7c8386f4e9 |
Hashes for pycryptodomex-3.9.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2a40df58bdb5aab5937b496633c5f1f9121ade57f0ddd20134869b83d5d13e4 |
|
MD5 | 8282699c07d782620cb2aaf34234cfb0 |
|
BLAKE2b-256 | aba380ac6059310e998ca97c90741888184d236aae2f1d3f118d4438581376ec |
Hashes for pycryptodomex-3.9.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ce406eb9147f73f36e5fd40decfeec692fc1e031f22868d066354155920a0aa |
|
MD5 | 0d28be8b816007df12db0857509f8635 |
|
BLAKE2b-256 | 99a6d6aecffe55c0b9acbcd91829fcd3855addde1b007b5ac305f1773a8a2dcb |
Hashes for pycryptodomex-3.9.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d694f813fcad311702177d7b591242ef5e8d984e5839dc146f0bd05c7ae4b32 |
|
MD5 | 33bc8406e1bbf03e1e86147f61ccc87a |
|
BLAKE2b-256 | f63d9eea2aeb908bffbbebd6644c7ca051dc2fa106367c942434bce10baa30fd |
Hashes for pycryptodomex-3.9.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cb470bb1ecf3ac32a3859ab5bf88af2a6b7e1074ca43145f17d8c5db29358df |
|
MD5 | 61635b8c10b1d554931ce5e61164e77b |
|
BLAKE2b-256 | 9fe64d1f03ea40858ee1f69f2b48baf0025b5ab780e5fcb1511dae6e58edeae5 |
Hashes for pycryptodomex-3.9.2-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebb129e246f8db1f611dbaf6bd98b6eccf6a35a9fe416701ec603b8a0445851a |
|
MD5 | d8b6776075d70c3e01206a2b2cd77718 |
|
BLAKE2b-256 | e9ce1e51c90088c61507a4856ef503af32b7373effbfc8c3d1161fa1ca8ad0a0 |
Hashes for pycryptodomex-3.9.2-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4953aaeec70e00b6d1e2005913eb67d20175d06987cb471c8174e852bd5b5f4 |
|
MD5 | 422163abce0e125dfc66949084b8f737 |
|
BLAKE2b-256 | b3883b79975efc18ac0430f0a3a43d37301e296a3daf1a8c1c736144985e8451 |
Hashes for pycryptodomex-3.9.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d24542461c5b52d4b662596e06972b78904b01a347c52e85e90ae0f0c313df6 |
|
MD5 | 491d9b6d2e18d84cb4cebee0aa478779 |
|
BLAKE2b-256 | 24ce2c6349c72aec32c948e42ed2c783a0c9b532d47ca592f36394ca74ceb52a |
Hashes for pycryptodomex-3.9.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f472d8872de72b62d55af253ca92fbf7c4ae167df5c384a8330e167582d99ddc |
|
MD5 | d37e06294c630cc844ddcd728b8933ec |
|
BLAKE2b-256 | 8f3b3fccc74e71e6a6c0288d3f3f63e723224db8365e1c02a319dac4ee3dc2b1 |
Hashes for pycryptodomex-3.9.2-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15be9f8963cf106102f394e99b39f87c3163005632d337f1e90990630fcdac93 |
|
MD5 | b7214009d924e98a3b54c7c6ee07e1ea |
|
BLAKE2b-256 | ed1a0fcf2f73b6c35149bcd3d0ac0f24ec4a2d2471c7d71dcd75e24b8775581a |