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 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, 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 pycryptodome-3.14.0-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e972f566ef7b821c8b958dab64174afa072f8271b779e32444ad7c127b0a84b2 |
|
MD5 | 597b083a053c07ab316d40f408b41bd8 |
|
BLAKE2b-256 | 43acf00a7d4d51f1fcbc635c280961388435bf3c9dca416520d6df61c56022b6 |
Hashes for pycryptodome-3.14.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c30a98c8718ae93d44680a7038adb484a520319860747ba43b6cd0a20f6b5984 |
|
MD5 | 8a9800d8ea8c944a4b1cb64b5797587f |
|
BLAKE2b-256 | 6b21e4a98fd34b24a906952d9e232f19d9b6f3906c191afe1e4cfc2e5b29a1f7 |
Hashes for pycryptodome-3.14.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89bb56cfd1fb74663842710bc41a6be26dafceb60eb8d432536891aea08a3740 |
|
MD5 | 48f285ce1113a1140ac9b2a21b3a2925 |
|
BLAKE2b-256 | dfdb8851d54669f24b63122b25abf27b965c96bda784b90fead2d93781d5e0d9 |
Hashes for pycryptodome-3.14.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16c171dd969c9046b7b304c6ba0c643624dcf18093a66bd30b8b091703f177a2 |
|
MD5 | 35673db72bb7b8d48614c9c10c3a5546 |
|
BLAKE2b-256 | cfcad474f0c62bbabce21b6fe3849c8a2a839c9f830a1505107ee0878d3480d8 |
Hashes for pycryptodome-3.14.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08be50d4195edd595df580077bbeec5599d0e5aa0cc468083178ae870e0b29f4 |
|
MD5 | f9290d6f40cb7058d590525758a75930 |
|
BLAKE2b-256 | e99c90971495b3645bc8e69d56d26cbb55bbc5b214b2117995aa26fcfab92df7 |
Hashes for pycryptodome-3.14.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fd50e3682ac3a684ace5b90ba1aef8090a78eeadf38c1ec385aad3a599cfd68 |
|
MD5 | e84a063cfb09b3ae6a4319c171bb3e90 |
|
BLAKE2b-256 | e34bce50e011a32ef3fe18a302f0d58a36e156d21a6502de5c291c43b7e8dff0 |
Hashes for pycryptodome-3.14.0-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a011b9fe674bd21056613e88a3e660c56f1b47263138ebf420aa3ee4b8b0107 |
|
MD5 | 86ad3b046245089efb791c8294f1b47e |
|
BLAKE2b-256 | d4fe146decdc2ab6cb93ad0eeff93510b1f9116c3ebdd1309b261dcfebf9f83e |
Hashes for pycryptodome-3.14.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1714ea5f83bcff25e8ae4640e22359d7a0815157a29d9f4eebc2b9e975a3cda0 |
|
MD5 | d15e843d04afd14253d1c25cef85fab7 |
|
BLAKE2b-256 | 6c66f1aeccd005a3bdc1f9c8bb5f875afaa724c2ad915bbf9d84e66ecbe18446 |
Hashes for pycryptodome-3.14.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11167a1f892283e5320feb5e81589fd041a1822b94c047820f00bc03eb98a9f7 |
|
MD5 | ebd86c60757e9c6f455b6b3fd4943e69 |
|
BLAKE2b-256 | e838659b1eba1374550b7aca1c638e3a14cf4b620a85365660751f266d914575 |
Hashes for pycryptodome-3.14.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed4da8f8afe44895c1f49ae1141a55b15d81dc745b5baa7b7a7265d7b40b81e |
|
MD5 | 8e48ee169d7d0cf8289183adbfa50d0b |
|
BLAKE2b-256 | 3793662a45890f1ca2cf006c58ffadbe94bb200928e6b097901ef295e7914932 |
Hashes for pycryptodome-3.14.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d186e34747985fbd94df7ed4d621f8377165053a06872314c2a594af34741655 |
|
MD5 | 6826984c5c217fa2bc789a2940d4340c |
|
BLAKE2b-256 | 6aa15a523b606f6e6c3e2056578b204e6cafa27726584bf7965654e8e86b71e1 |
Hashes for pycryptodome-3.14.0-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f0da308fca149b4c4da78e1388f82d8dd167e0ce12992a44f81b506cede3109 |
|
MD5 | 1b48a9ec059654a9cbb34b0c0283614e |
|
BLAKE2b-256 | fa4ca0b4ac33a9382bb7a8a890a2f9465201b5abd3be168d22d32b8642f2206f |
Hashes for pycryptodome-3.14.0-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9006f17944efaacc3be364c01c2253c00a00f0b5fa5a1a85a1191efd861e764d |
|
MD5 | 8bfe8f77527a17fbda4febdb3ba0356c |
|
BLAKE2b-256 | e2911702d46acb3c9aef3729f4919bbe0c5303a5b76fce1c553918714770f680 |
Hashes for pycryptodome-3.14.0-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e3851e4fbbab72d9b30f98a504f450cc61e497e8e4b0be8205dc198703eee4d |
|
MD5 | 44262151af553b6427a2caea4be3ab38 |
|
BLAKE2b-256 | 999d51a60c31847ea997c788e6f88192903a04d87914f330f1face0e0ac1242b |
Hashes for pycryptodome-3.14.0-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22a8629315c76d2bec57bc4fd67eb7e01664c3e3b9579df40f530ee5821db1de |
|
MD5 | 0badd84a2f47360c0f89e9f807d4d492 |
|
BLAKE2b-256 | 724375f6770318bab07ae10209a5c105525d6326a199b8748a75bf1f6e78beb6 |
Hashes for pycryptodome-3.14.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2b6faabd09d2876f9050f8af5d78046d81fe856f99e801c2ddab85b59602007 |
|
MD5 | 78bead546e98aa5d1849dce7af6c086e |
|
BLAKE2b-256 | a6d9f08089fde352bede6685a89849581246071f47aed96dcca72b7328c24101 |
Hashes for pycryptodome-3.14.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74918d5de06b12fef2255135bede41307a5f7b929b145ad867111525aea075dc |
|
MD5 | dbeddc31418e1e52d2df962a69ffe30d |
|
BLAKE2b-256 | afedfdbdd4a7ffb2f7b351517dc0bd448f5c32cd45aad40f589596ebb7e2184f |
Hashes for pycryptodome-3.14.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d667daa851b1f9a20f2b5cad3cff13fba5204bc2f857d12f27c25b178d8629b |
|
MD5 | 8c9914de734004eeb39e270d68ffb00f |
|
BLAKE2b-256 | 0384a701fabe2d29e5ebaba3f1e147789e9cdcb051bf57fd606fd731df9a5b40 |
Hashes for pycryptodome-3.14.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bba348d2823315ab8ebe44f0b2fc2ff8dfac8de881713a08def3dadcfc8e92bb |
|
MD5 | fbd75a2c5a29f08467d2a308d54bffa9 |
|
BLAKE2b-256 | 0049d2eab5d56b7cb8ee6df44152cdd976be4f7dfdf39df58068b5f8c9ae10b4 |
Hashes for pycryptodome-3.14.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69b85d78f7db628370d2cc87f1c41a449f6460896ba95f412173618f75027c2c |
|
MD5 | 9a23fafc8a3fbfb47e09a8626c235661 |
|
BLAKE2b-256 | f96b0470714a94e9ec2c670c6e02dd5dab76b7263dec6a558282417a9ad42121 |
Hashes for pycryptodome-3.14.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ffbca43c1788243421a8583d85acb59f4cd0b82b001c485fdc3fbfd8fd0804f |
|
MD5 | 2419eabbfb2ecc60314e66dc4408d40f |
|
BLAKE2b-256 | 285d45fd2224041933e49b801df34b789505cf27637bd61d2d554c0836e4bfff |
Hashes for pycryptodome-3.14.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95bac6e55411650933f3b615e57bf0966bf08f3ce07c01f07482ced95f18cbec |
|
MD5 | d84187587080fb7f43435b56e8c318cf |
|
BLAKE2b-256 | 98b2db44292433227e7c144bc1dab4c69ee5347ee88ad9f97e717332ca430d91 |
Hashes for pycryptodome-3.14.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b454af09914807cef1222d100a8c523737a160347cb8d699facc4bdfb9fe725 |
|
MD5 | 658f0dc9e009af156f03b006fc185261 |
|
BLAKE2b-256 | 1e040133f48203bced2aa2811f36e5e0650cb10435c71031655cd401baf3ab95 |
Hashes for pycryptodome-3.14.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41dbb8c2129d43f34ed555cbd365d5e8f023ef0f9238fd9cd0302086b15a38b3 |
|
MD5 | adc3da2804e51fc2dbdcd5b360841987 |
|
BLAKE2b-256 | 467a24735733f9373f0c42bb33a35dd561b8d0368df60be08f4214fb86e955bb |
Hashes for pycryptodome-3.14.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d939a257117cc8c6840ad69f149b3ca5e07268cfe0429bd9feec0f91da2343d |
|
MD5 | a2db7305a11f683d6707eba8973a6b26 |
|
BLAKE2b-256 | 6bca6565dd130d5eb5c22ba7b4bfea078ef31013a401a2bbf07c1d04b4cebafe |
Hashes for pycryptodome-3.14.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d0b6cca6b707b2c7cd4177c2d3cd950efa959ed8f01c30e676f102c68156f00 |
|
MD5 | f85e94807f31191ba7f78e1cf5a31b31 |
|
BLAKE2b-256 | efdbfddf4c6e30c6d6a9bb77a4a2c6ba86572a16f43c331ec37efef8d324d071 |
Hashes for pycryptodome-3.14.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1c116dd7a00aac631f67920912fd8ef7a5ad3402cd4d497c6f5cc6b8115747b |
|
MD5 | 5b948ebb0c05996d70e86eb4a6be1c24 |
|
BLAKE2b-256 | 175e88f58c89ecdeddb0d733277ea03c98ddc3bd7e6e326a87ce29336e0ff349 |
Hashes for pycryptodome-3.14.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 625f78ad69aa3c45e19b85b9e9cae3a30aa4a1de6b908981a63426b88e860489 |
|
MD5 | 6d5f8794375e1f8abc07c8c6eb800869 |
|
BLAKE2b-256 | 682344a1dce83e5d82a6ba500a561e0c6f398cdbf023740727e454e4315252ce |
Hashes for pycryptodome-3.14.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd800856e6dea6924504795ae4ec0d822e912e0a9a215e73b77b585c4d15a0f7 |
|
MD5 | 0b4868c4c996306444d2ad7d87bd1a7e |
|
BLAKE2b-256 | 6d84637a967fa0c9e4eee78574df733e34890fc1e89ea892bb153cf062e22436 |