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.4.9-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b07e5231f1ad8f5962b195d030425aa9978570d6ccf59c585e50e57a3efae2d |
|
MD5 | a37bbc3931d864ee6d8785e3aa12ddaf |
|
BLAKE2b-256 | e95ec22eacd62890130302900508dd0591ddfea177e95f55a8679f35006d8884 |
Hashes for pycryptodome-3.4.9-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38af2a480db3cd1b19411b597a022ae478b6c2b1383a857b2af161f800a3dba3 |
|
MD5 | a067d17b0327709b836621f46de04753 |
|
BLAKE2b-256 | 695a235816d0768e01fc626f70898f86a1bd0dcd052ae6e8be0b24e0d65624a7 |
Hashes for pycryptodome-3.4.9-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8da80b68e39efc87cf7a135cf86f183abff775779690b6a3dfe1f8640142a9ea |
|
MD5 | bdbfc494e743e07423cd82aef7115f1b |
|
BLAKE2b-256 | 073d7be87324e0f6152fb3730017dc1f3edafe8d11a01e756995d6e8c1f33f3d |
Hashes for pycryptodome-3.4.9-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db3a5dc5dedaaa72a0339e2ff92bd749db13111acf5d2ba4e1492a61110e493e |
|
MD5 | 9c15eb5f547509935edfafb5c67c3127 |
|
BLAKE2b-256 | 217b9e415f05ff198c99c73e4ead00528779b5b8c3414a1cdc93b9d78ed38075 |
Hashes for pycryptodome-3.4.9-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6340ef775a2ae164e62be4390a8b382307b317a1994bec594d787c4adaada18c |
|
MD5 | a0d65996c88e2b65421ad5f7faeaaa2f |
|
BLAKE2b-256 | 95911c1cbddc4ecb68ba5db32acaf94c2ad3a36f35743f6583a6d147eea02c6e |
Hashes for pycryptodome-3.4.9-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b59778f268acc8c67d71a9f0a182211209e69dba55aedd53315d3a2a34378f96 |
|
MD5 | c4d89ddba8debf9eeca777eae502e25e |
|
BLAKE2b-256 | 98025d709d22796da1127e111cd7e61d2d17bc7f70cb8181c4bf04b5f8ac9318 |
Hashes for pycryptodome-3.4.9-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84abcf9d5d36c38ca0b70b6e89fb9e9deb19eb5b18ac865157f118c733fdb495 |
|
MD5 | 0ccaf720a8953bbe7650170a000d3dd3 |
|
BLAKE2b-256 | 98eeb9ae80cdb856dfaaee170475712c57bca031329a577798e718739a6034f9 |
Hashes for pycryptodome-3.4.9-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe8ff144f82302021481150d6b86aa8445288faad331fa645a91e65bddc256b4 |
|
MD5 | 5304aa5e84e3380bc7ece3acec768da1 |
|
BLAKE2b-256 | 0fdd6348ed6c50394f1cf504c6630a6e0158ff251ca094212b70e5ccf42b95d1 |
Hashes for pycryptodome-3.4.9-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2af97d4e3734d449f1cb6be8344f1cdc3e20b7ba08c3223cf0f93ae3ad2850e7 |
|
MD5 | 73ca0e6743728a3987a450818c3ad6d8 |
|
BLAKE2b-256 | 231d1d9c0b3649190f4f27f074e539f6b622dcd8a3f018982d248f6401874b67 |
Hashes for pycryptodome-3.4.9-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e2c3e4bf9a49be16858f81fa6a283c789b489df9d0a57cfac200dd36f1ed4f0 |
|
MD5 | 8e6e769168348ae7071144496ed1e18a |
|
BLAKE2b-256 | 8b5f2ef2ff10c87617b68d2c448f53101f62e9f93153c0530d52d7be2a4954ea |
Hashes for pycryptodome-3.4.9-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ee95f2d859f6dca2b01ba4e2245e0d102b0c35aff2269a9541dc70421949411 |
|
MD5 | 931fefe4d8e5a8157b3392105bc99bc0 |
|
BLAKE2b-256 | cdbb2a456ca9e4ab004b4a7b7fda6d01203c5b8ddab8c865cf85e8a08a18f815 |
Hashes for pycryptodome-3.4.9-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3165de346fa68889fb258d85352df6db36c314d9e50f18215abbeb113c91eb3a |
|
MD5 | c35ce7a8b924d279172129903dc1752f |
|
BLAKE2b-256 | 6867ae4707f67e505ffe6c889f263f852c240444d8476824de776033b46b6578 |
Hashes for pycryptodome-3.4.9-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8b8695f442b3cd03ab1114e5765dd79ea334a2ae23ad0dcba47033dd3acb0cf |
|
MD5 | 90aff9fe777ba4f731e98f1e9723f656 |
|
BLAKE2b-256 | 530048fb18589dc4bcb8c9a830694fb6c3b2bfd5ba22ca2ee7a30d377dbffd59 |
Hashes for pycryptodome-3.4.9-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f8c4d7a2367a8bf3d65564f33ebd8bfcc278b0d5df962579c2546b35d370b25 |
|
MD5 | 00a373fb3a05bc10cd62784a839e3539 |
|
BLAKE2b-256 | 19bf3c6c7369847b1bf3d3b5ceb5ebbaa8169e13bfefec9b0ba1933cb017882b |
Hashes for pycryptodome-3.4.9-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84aa0aa39e3f0d948a7f73bb443bc41936d749c6dc105656703845e0cd2410ba |
|
MD5 | fddbdf0420b5594270b5f64f49e4a05d |
|
BLAKE2b-256 | 2f0e3f1c369a9f4de98701c9ee89f9d2266f16fe8af09751dcbc3d466ef91e7b |
Hashes for pycryptodome-3.4.9-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a531312dd3460f25f565d8c24c63b3f02bcd4df7cbd65fc0d215cd44e2bceb0 |
|
MD5 | 04278492f05ce5a19b4c23ee0fb6a4a2 |
|
BLAKE2b-256 | 324ffaec17800395f83c7d3e586bf55886158059b3d9b651fae348a86abe3f1a |
Hashes for pycryptodome-3.4.9-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df91961df04856976cf197cee072e17b1e193a32dacf9d97335105a4785f6370 |
|
MD5 | 25d6c61129df42fd3dfbefe9ebd3ab26 |
|
BLAKE2b-256 | 8bda36ca62866d75054849d31e8582ed08e43e814150c35049b4031ac6a518c0 |
Hashes for pycryptodome-3.4.9-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ff7fd63dea53cb8032e229c35b1b4f8f4dbb0ad3a410677c2da94113e323b7c |
|
MD5 | 364d0d67642c579c12e2a98f54130df3 |
|
BLAKE2b-256 | 254783dba865162e7dab0afc3e758a581fd74a4a137209b8e48bf459cc3d22e0 |
Hashes for pycryptodome-3.4.9-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caff049858f0c6471005b968fafff7824d8deda72eb4a3bc649bd42d05d9d9a9 |
|
MD5 | 458ae266db62282244e2e46213e062d6 |
|
BLAKE2b-256 | a1245153fdb8904b669b3e617f412ac07bc1f5a617c8a0669af8ca62ddd99fb5 |
Hashes for pycryptodome-3.4.9-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ed92aaf3eeafa84193ef56c0e2726ac8fc6324839214e00868cb7aae15ac819 |
|
MD5 | cda3ed50193ed71f819b6c4a1efff720 |
|
BLAKE2b-256 | 1d826dedcebaa6fcd608d555b564b4cb0d99f589d68f41b1348031c8e11f9d81 |
Hashes for pycryptodome-3.4.9-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd9164c7f319b2df3509ae9c997a84f726a4c728bbf7e33fac68ca31c377a2a |
|
MD5 | 8badeea00fd0e16bca9cbdda178c9aed |
|
BLAKE2b-256 | 2031dc1c53fbd70064cdb6dc32cff23b1beb620a7ccc4acb9b56277f8c3b5153 |
Hashes for pycryptodome-3.4.9-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a29949dca189e65974cb241a742f35ecafe514a9ac9526c5277b25fc43d46e4a |
|
MD5 | 0650254dd42ec2f0cdc0e41fe7607fde |
|
BLAKE2b-256 | 6d7410635947e729d2809cf23906733af83800884eb1c840993a74ace5eab651 |