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-curves; Ed25519, Ed448)
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 and EdDSA
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.19.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 800a2b05cfb83654df80266692f7092eeefe2a314fa7901dcefab255934faeec |
|
MD5 | c8a2dc352c8b41f1956530f65180d530 |
|
BLAKE2b-256 | 697b572a7b9427d407211952575cbcf729e7de4f2c0de0e1fbcdc9a3c99a8ee5 |
Hashes for pycryptodomex-3.19.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b2f1982c5bc311f0aab8c293524b861b485d76f7c9ab2c3ac9a25b6f7655975 |
|
MD5 | eda889d1cf17b7ebea57f559eb391734 |
|
BLAKE2b-256 | 4bd8ff65e677226d44b299bb357083a610a74a0d8d5575684f69d47c6f36f697 |
Hashes for pycryptodomex-3.19.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfb040b5dda1dff1e197d2ef71927bd6b8bfcb9793bc4dfe0bb6df1e691eaacb |
|
MD5 | 454a0dc5a3ff65efb2c4f7b384969c34 |
|
BLAKE2b-256 | b181422575266406d3f6dcb8aefc55ffaff7f81eaea50b267d99eddc3aa84cf3 |
Hashes for pycryptodomex-3.19.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d73e9fa3fe830e7b6b42afc49d8329b07a049a47d12e0ef9225f2fd220f19b2 |
|
MD5 | 3112d1496c02d66a20fc20f7ae590aed |
|
BLAKE2b-256 | 2a446acad5f19faf8d6302bd1a1898fd0949c70c3cfea7f06f6cf4e0214bbb1c |
Hashes for pycryptodomex-3.19.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50cb18d4dd87571006fd2447ccec85e6cec0136632a550aa29226ba075c80644 |
|
MD5 | 5305a860962903b70faae6aa134666ba |
|
BLAKE2b-256 | 4b295a564f688b9b173d5205e07b059164b2123e7aa4bdf671f882fb61d31499 |
Hashes for pycryptodomex-3.19.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2126bc54beccbede6eade00e647106b4f4c21e5201d2b0a73e9e816a01c50905 |
|
MD5 | 22c5cea9075bea437523f12ee9a69122 |
|
BLAKE2b-256 | e19caa497ab45356607d8bc48404f8db769db217b7f0cabf63825cfc9bbf2217 |
Hashes for pycryptodomex-3.19.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b801216c48c0886742abf286a9a6b117e248ca144d8ceec1f931ce2dd0c9cb40 |
|
MD5 | f77059758c214c6d8b9a700672e3f92c |
|
BLAKE2b-256 | d4b65379469a19200da191b32298de57bb04f205ef184003cd315d0ef3dbe911 |
Hashes for pycryptodomex-3.19.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c01678aee8ac0c1a461cbc38ad496f953f9efcb1fa19f5637cbeba7544792a53 |
|
MD5 | acb0f13662a7569ca4a8d24bb2de03e1 |
|
BLAKE2b-256 | 0b70585974fa8239a94089f4e7be1243324c7cff6f6cc932fa1b05ede04941c4 |
Hashes for pycryptodomex-3.19.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 136b284e9246b4ccf4f752d435c80f2c44fc2321c198505de1d43a95a3453b3c |
|
MD5 | a1477b262ee2e901b24842b4f9c21654 |
|
BLAKE2b-256 | 8fd5460bfcd1bd7d14aa6fda6b7e8f95bca048f46e1f89ea7083150e1e706258 |
Hashes for pycryptodomex-3.19.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edbe083c299835de7e02c8aa0885cb904a75087d35e7bab75ebe5ed336e8c3e2 |
|
MD5 | b019795983cc2ad92ab2cab99adc0526 |
|
BLAKE2b-256 | 1c11fae110cf8242838f33b0f67ba0ea7431421c1f73c1cbd80571cc6f0b161b |
Hashes for pycryptodomex-3.19.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09c9401dc06fb3d94cb1ec23b4ea067a25d1f4c6b7b118ff5631d0b5daaab3cc |
|
MD5 | af80d4ec6ac784e08c7bb9d2b968a861 |
|
BLAKE2b-256 | 3ca481675804055339db8e277f48bf0012b554a2322f15d000caebf7c8d3f011 |
Hashes for pycryptodomex-3.19.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67c8eb79ab33d0fbcb56842992298ddb56eb6505a72369c20f60bc1d2b6fb002 |
|
MD5 | 6e36c5953a1cad4fce626f111d99c5cc |
|
BLAKE2b-256 | cb862fb842fa9f7cfc094ef5c378841746a0290c50744deb998d454be63cc1df |
Hashes for pycryptodomex-3.19.0-cp35-abi3-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 263de9a96d2fcbc9f5bd3a279f14ea0d5f072adb68ebd324987576ec25da084d |
|
MD5 | c3b37ceaf773fa0a6ee63a0286a1d3c0 |
|
BLAKE2b-256 | ebed68f442b682c71413f44761b578e807a1eb6b3d8ce8bedeff0874c36ec1c5 |
Hashes for pycryptodomex-3.19.0-cp35-abi3-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4dd3b381ff5a5907a3eb98f5f6d32c64d319a840278ceea1dcfcc65063856f3 |
|
MD5 | ca8185e3fdcb140e30e0bb51161485e4 |
|
BLAKE2b-256 | 85753d457b031d06872cee68b650b0e6f47da142128dbecf95212b1f6090b735 |
Hashes for pycryptodomex-3.19.0-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a588a1cb7781da9d5e1c84affd98c32aff9c89771eac8eaa659d2760666f7139 |
|
MD5 | 68db3d1a2709589dded42d4b60cd1ab5 |
|
BLAKE2b-256 | ca8295ffed2ace8c9b2f9d8c53e219b5a057155ce36045e489d9760dc75e2360 |
Hashes for pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c74eb1f73f788facece7979ce91594dc177e1a9b5d5e3e64697dd58299e5cb4d |
|
MD5 | 8120c02fac29d0d3b93801c96c80f2b7 |
|
BLAKE2b-256 | 23233f3d042c96ff7bece5b126365593b1f9c8e3ae62ce80d44e9da39c5e8a73 |
Hashes for pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3866d68e2fc345162b1b9b83ef80686acfe5cec0d134337f3b03950a0a8bf56 |
|
MD5 | a65cf9d8063eacc9d34c9fe24dc8554d |
|
BLAKE2b-256 | 4a59d3dbc2d464e2d9ee1a4d19df887269320b2a92ca7c1800495d6a9c95d9fe |
Hashes for pycryptodomex-3.19.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cb51096a6a8d400724104db8a7e4f2206041a1f23e58924aa3d8d96bcb48338 |
|
MD5 | d7b189ca39dcc41c44b83e912b20364c |
|
BLAKE2b-256 | dea326877199466b5522e58a08d68be9c611a0298a46717a475e9f4aaa2cce91 |
Hashes for pycryptodomex-3.19.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b883e1439ab63af976656446fb4839d566bb096f15fc3c06b5a99cde4927188 |
|
MD5 | 17ee484b995895ca6775d76220217d06 |
|
BLAKE2b-256 | 2cbbc2bccab4181008f72a972e330f544149ed96e249a74c7c699ef52b2704bc |
Hashes for pycryptodomex-3.19.0-cp35-abi3-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a77b79852175064c822b047fee7cf5a1f434f06ad075cc9986aa1c19a0c53eb0 |
|
MD5 | 0766df433bf4ddb7711f671d1a177462 |
|
BLAKE2b-256 | b71a546118e6b2084d68290d2f9c0c168aa26e981a35f3d119b2856fbed7c060 |
Hashes for pycryptodomex-3.19.0-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8e5ecbd4da4157889fce8ba49da74764dd86c891410bfd6b24969fa46edda51 |
|
MD5 | 6cb680558090d23ef4a8cf50a68c30ef |
|
BLAKE2b-256 | 8e02dbbb71d9ad155472a0e182066bf044cf863082eec7d0acf9c41368783eb9 |
Hashes for pycryptodomex-3.19.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 917033016ecc23c8933205585a0ab73e20020fdf671b7cd1be788a5c4039840b |
|
MD5 | 9a7aafa24fe9d73ff7e91b29057d12c0 |
|
BLAKE2b-256 | eeb28c80f0201903f34da391b4ed5caac152fa1af26c602844e692525fe586ec |
Hashes for pycryptodomex-3.19.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8df69e41f7e7015a90b94d1096ec3d8e0182e73449487306709ec27379fff761 |
|
MD5 | 234e89519bbf764aff0f3ef5ddb0eeb1 |
|
BLAKE2b-256 | 1d17b9bc1a1b0bb1a8c4d2d6bf5d4a01b5f1e1cb0761d79599b08e4873fd12ac |
Hashes for pycryptodomex-3.19.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9a68a2f7bd091ccea54ad3be3e9d65eded813e6d79fdf4cc3604e26cdd6384f |
|
MD5 | e336f3e53da2f0e9ae8508d4d48a9723 |
|
BLAKE2b-256 | fddd068884e3a8f49e7cf8ab6aecf04ab11516580bfe7d69c404e13ccd1b5fb4 |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb2fc0ec241bf5e5ef56c8fbec4a2634d631e4c4f616a59b567947a0f35ad83c |
|
MD5 | c80865f1a2baddb9131109b3ca08d758 |
|
BLAKE2b-256 | 356c6b4616e896d4147d02c6f93eddb049ac89ade9cd44a3935e769e0a338707 |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1789d89f61f70a4cd5483d4dfa8df7032efab1118f8b9894faae03c967707865 |
|
MD5 | b611f945e8959351ab892544a4f812b0 |
|
BLAKE2b-256 | 3655f7ae9098338d6a74a3beb08a9d5b491645b3a553fb05387e022340af3d6d |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a12144d785518f6491ad334c75ccdc6ad52ea49230b4237f319dbb7cef26f464 |
|
MD5 | 674f8e6dd178a364f9216b5f45292ef0 |
|
BLAKE2b-256 | 46a5d00d454d662f926759fa351db10946bf5800176a6980b588bb8b1a7c6cea |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e45bb4635b3c4e0a00ca9df75ef6295838c85c2ac44ad882410cb631ed1eeaa |
|
MD5 | 353b6bf28fa3b107e20d9b4ed6b7ce06 |
|
BLAKE2b-256 | f6013064021b5b6ee75a84e82fff4a3e6543491646606f65fbb77f8fd53ea9b1 |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 258c4233a3fe5a6341780306a36c6fb072ef38ce676a6d41eec3e591347919e8 |
|
MD5 | e5e58880e0267709bfe065494bb0d66b |
|
BLAKE2b-256 | a5289228c977d01f0a5974f83a173b5180e0f056d4fb3d3071101a92070e199e |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61056a1fd3254f6f863de94c233b30dd33bc02f8c935b2000269705f1eeeffa4 |
|
MD5 | 2c8923076dc9dcf6faaf3fcdd7a4aab7 |
|
BLAKE2b-256 | 5e3602d02282e06f3348ba6e95812e841d3a782624be98916e4a77aeb902746d |
Hashes for pycryptodomex-3.19.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff64fd720def623bf64d8776f8d0deada1cc1bf1ec3c1f9d6f5bb5bd098d034f |
|
MD5 | f84ab383301833531c80567eecc259cc |
|
BLAKE2b-256 | 05b072c98bb36032ad023502a0e8ca277a21d8df6d06ea9a6c5e594080d67b75 |