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.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9dd8fb9d76fde52c01dcc6d24dc384ddb60ff6fb96216a58017dacc5580600e3 |
|
MD5 | b409e1bfad494647214ea1360e02ff76 |
|
BLAKE2b-256 | c8586bcd5e9d66c4dc2a36032936aedeb698b879b88a0ad9a82bbae28792b505 |
Hashes for pycryptodome-3.6.6-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 927ce443c5183ee7738ce113ecf656842fafbad1d6f4ab726dc12abc8adabfad |
|
MD5 | ab8fcd132fce09964cb7917fb71a9d66 |
|
BLAKE2b-256 | d4a30f222f5fb63b023847d3ae4a59c8ef5341d2c664d3f9b88eabd1916b84e7 |
Hashes for pycryptodome-3.6.6-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa99a0bcadef482300f5308bb9c0041d4f084b085dff0c908350de382df9f87d |
|
MD5 | db9b581da83fdd138789ebfecd7a27c1 |
|
BLAKE2b-256 | 120eae5165aa9045b2967015f6dd2e4f15569c47a04eb2753b62554c1a5abf5c |
Hashes for pycryptodome-3.6.6-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbd0def77da8edd5293e5e3b534763861e1c3f4f645ef3602f718fd709536a77 |
|
MD5 | d7de7654588ad22f35f8da8843f6bef5 |
|
BLAKE2b-256 | 77062bb8b473737afef57200c632f891bd66942c060b9fec2ac17068a631633f |
Hashes for pycryptodome-3.6.6-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 637bfc8bfb68d477619c54b56d912117abca05306a222ccf03dfc09ab6b4e5a4 |
|
MD5 | ca10ad7d0b904a18cee039fec98bda85 |
|
BLAKE2b-256 | 8f8f53e2324df8e4b7efe2b389b15a29d7d6a34b419dc5fe236d4ba092061d20 |
Hashes for pycryptodome-3.6.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d7e07e885cee42b222ab190ea292f144aaf6e915ea3d1bf9e2f812fc2ad9f18 |
|
MD5 | a345719f40bedaeae77a89b0913cdf13 |
|
BLAKE2b-256 | 15c93c489d2f7adbc5bad3356ee8bdcc4f5bfe642363b993146609d5daf717c5 |
Hashes for pycryptodome-3.6.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53cd63d379224ea52d8ba2012fe8acf9eb682aa819c3a9a02397fe3e6b4315a4 |
|
MD5 | 75a8ff490791adf6fb96c4689a9c0c55 |
|
BLAKE2b-256 | 5ff4953ba992cfd2a2923da29d900897757e35f867c464b944d61def1c6adeed |
Hashes for pycryptodome-3.6.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef50df5404b50109a13e46f4421ffe64a650104e2216e282a49662712b024dae |
|
MD5 | 629504f7a4c761d12c91ce38068d6a40 |
|
BLAKE2b-256 | 4083f195ab14348cc957d5cc6ae195918b1ce012ce2df4f4b9a52e260a8e3ed0 |
Hashes for pycryptodome-3.6.6-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4c5d98eb9608bf29b66504dba96494a9fac75b3c0c57dfb557f6e812989a3fe |
|
MD5 | b3e869ca7948900fd30bcbb3cdf4cf04 |
|
BLAKE2b-256 | 37c159eb51a6db3d6bc8af6ef0cbd11d389ede23306845f7e3701f251c35f515 |
Hashes for pycryptodome-3.6.6-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26953969934e09d49b2e370229ef262dd480b46130660086b22fea29df335dea |
|
MD5 | 24f302ff65907658a99cb3595ba6ceae |
|
BLAKE2b-256 | 1850439be74dd1b63c8fe87bcb163ce2c9edb0419c77b94ee45159e20b2d714c |
Hashes for pycryptodome-3.6.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f459395378709b7aa32bb6e59d55d72d48631840ed6c1c919f63036bd548f375 |
|
MD5 | 4edcfae377962632201c630ef15bf9e5 |
|
BLAKE2b-256 | feca470bc3edb5b9c54391ca689f7922f3af01cb1c20e197b4789d5a3e7c74b2 |
Hashes for pycryptodome-3.6.6-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c26f706a8b8e1e44076126bfe0319b7eb9038350d5b6ff55c86b2edb434b3e52 |
|
MD5 | 41377c742990bda96f2d12caab2fbb32 |
|
BLAKE2b-256 | a0d1f54ac87e09ed4ebb9967ddbfbff9af56d3d7917d0b93e39a614bb78fd664 |
Hashes for pycryptodome-3.6.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e23b2e13580a4e2d35f7acba674b2b1d1fca9b20a5c0d8ffb98b8fe58c2e7107 |
|
MD5 | 1c31defeb0cd8c57e409efda481b0d6e |
|
BLAKE2b-256 | e902f22c807b475c872117e53d087b7c122980269bf32f54880b6521fbf378ad |
Hashes for pycryptodome-3.6.6-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31d2f9fa32fd651694dbae298682c1afa2337fa6454b32b241164c2ffe96e1c1 |
|
MD5 | 31c9a2b6b3aca09eafcd9462fcef7932 |
|
BLAKE2b-256 | 6bfa3d61cf0009ed8de1d5994b01adb5301c2ae2b740ee62b73caaf993aef2db |
Hashes for pycryptodome-3.6.6-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cb057b700d688bb37082b0086d061462dde18c1fbbe355615db87f3bf97ffa4 |
|
MD5 | af5a79d06c1fb5d28b53091260499fd2 |
|
BLAKE2b-256 | 890952f9397f5973aaa068502348d18f0370e1505b852eed89dfb739331315d0 |
Hashes for pycryptodome-3.6.6-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c58539996e2acdb6c5554851cd1b333af889a6aadeb9865127e4bbc17d01ff53 |
|
MD5 | 8b7343cddbc5877096b5aca1e4e43e54 |
|
BLAKE2b-256 | b642cc6e5d906eb832a1639b175d39126e7a5a216fbcea6cadb337ac7a935e1f |
Hashes for pycryptodome-3.6.6-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f027d5da3f3c4c0167f3ccf4a1f56674248120656099df35098dfaf3edff0fb |
|
MD5 | 86d229df8302bc76e903acd81a058b4f |
|
BLAKE2b-256 | 47d9a58622efdf00b75d985081283261d75e1643db28f5b19b0bf5968cbb52b1 |
Hashes for pycryptodome-3.6.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc130342d9b6267efaa97ea305b9a46f59c097e95263a6d65abc7890331535e7 |
|
MD5 | 209a900cab300c20165759a351af69da |
|
BLAKE2b-256 | d5b6f92cbeb8ee3270c8b4426d765c05ca047dce7c5adb03374e2172644ccb11 |
Hashes for pycryptodome-3.6.6-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4406a5141d6d5d19ee515ff6c69baf9a7a10006a8490e7447cbc8dcf61f9903 |
|
MD5 | f4c58099ac66cdbf7398602375d60c5b |
|
BLAKE2b-256 | 514342f7c83288eef75b44a623e6aac7f83a95ff232c9979d3ca9f42aef0c403 |
Hashes for pycryptodome-3.6.6-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abd859f70a9cad653644b0415adfe6223f708093296747970ec56a8f5537bfb3 |
|
MD5 | 6b86867815b7fad1fc62c51a154521c2 |
|
BLAKE2b-256 | 1749b2abe706aeb52c24ba0d83336d6b46842f170da12fe97f79fb1a8aeef4ad |
Hashes for pycryptodome-3.6.6-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0468c5c9944859c862d81621985d407097c08c0e18bb537883b9268c6e34bd1 |
|
MD5 | 63525bc89b8800b686de161d2776c5de |
|
BLAKE2b-256 | 8efc5bf5b174ae750b7d34644fec5d7d4983367e3f9d7f0ba4a09dc4f2f440c5 |
Hashes for pycryptodome-3.6.6-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e970715407a862b6b4c61f1a8c60734c0fa39f45d36dda46dbd0baf2d8caec2 |
|
MD5 | 8952c700b8bed080cd70385a9091a696 |
|
BLAKE2b-256 | 9a2b06ae8b52729d1251c20eb5e05a00c91e0b3ca070627293f86f5b65842912 |
Hashes for pycryptodome-3.6.6-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c899042914a780abfc01250d22f5674f60195b8149f161a6481b6f6b7aa81dee |
|
MD5 | a0811f48b6f2d26ec2a68d51ec662e02 |
|
BLAKE2b-256 | 40261546cda8b55c08001c9100c031bd1be4c93edb18bee788877f7e23fc1ecd |
Hashes for pycryptodome-3.6.6-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfa339c6ef6a1f36642db0dd0d442207aa2a071caa122d744222f2a2832c530f |
|
MD5 | 4d46665ce6aa1476aaa1fe4fc32b3fbb |
|
BLAKE2b-256 | 1b7cde3feeddb5c363ceb98f1964fe64ea605c5f6fef9c72b08e88b28b3fb3c5 |
Hashes for pycryptodome-3.6.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2652a86850d7873249c64365a61e1052934f1504f11b57dbe76c1a4dc9b5d593 |
|
MD5 | 94430b379cc460423afeac308d485920 |
|
BLAKE2b-256 | ca4a8d1cca087bf10e12bfe6c2cc9d14848fa695e882b79c8eec3d8c125a7fd9 |
Hashes for pycryptodome-3.6.6-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80c55dd2246a17b4af18bd615711b90c8df4b780451692f627a38a636d0792ae |
|
MD5 | f1470d3fc3b9f35b172da393ad78b1f7 |
|
BLAKE2b-256 | 487779ca64172ae72d7978b5ec54e82bee60d7f2b61473c78addc452e4c14cae |
Hashes for pycryptodome-3.6.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 864249afa1d801c7a2abb3fbed0e9e8ce4844a8f68daff8028a40634f69f0135 |
|
MD5 | f0e6a4e715edcc57381570c24efc0ca4 |
|
BLAKE2b-256 | 960fab0df9f7617f99548db6e0c0589ca3b7d08cae147a604c83758aa86000f4 |
Hashes for pycryptodome-3.6.6-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b8a3753e31b058d48bdd26c50c049a04f35f0f05c0d866c63fc90fc9b8dc5d7 |
|
MD5 | 430c966969aef185c71985a419c6b90e |
|
BLAKE2b-256 | be8f8c2e623377c1387c1ba006186889b0ed6aa8c09a9fece8b5ef1e9156ee40 |
Hashes for pycryptodome-3.6.6-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bd1c4671b3a2c8d647731e9c34115efa928ff12d0ef1bef68f0f7af984bc239 |
|
MD5 | 4088e603cf481c62c996b88dbdb72fba |
|
BLAKE2b-256 | 34f481ae7c49f2fafbdb6772bf94ef9d989f1d9d1002822419f625c7ec66c2d1 |