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 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.9.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c53348358408d94869059e16fba5ff3bef8c52c25b18421472aba272b9bb450f |
|
MD5 | 1ded3f159cc8dfa02dd53636879966f7 |
|
BLAKE2b-256 | c8a9d65f44cdb4b44e05b494fa0bfed087105a706033644e5826c48d3c6ccfb8 |
Hashes for pycryptodome-3.9.4-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8ca2450394d3699c9f15ef25e8de9a24b401933716a1e39d37fa01f5fe3c58b |
|
MD5 | 3da167fa6fde41d33a4142d38a5203ca |
|
BLAKE2b-256 | 392aeb5891608170fcbb68755e443af114e325732aae4157893cb86ed88e01d1 |
Hashes for pycryptodome-3.9.4-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ef966c727de942de3e41aa8462c4b7b4bca70f19af5a3f99e31376589c11aac |
|
MD5 | 5c32dea1489e944565d01c211352c749 |
|
BLAKE2b-256 | 6c20e63a0c838d4c627ace284d60d4769ccf0b568fa9731239b0199d03be24d0 |
Hashes for pycryptodome-3.9.4-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbfd97f9e060f0d30245cd29fa267a9a84de9da97559366fca0a3f7655acc63f |
|
MD5 | dfe09830ac7970f451ea7086c396efdc |
|
BLAKE2b-256 | cf5354ee1eb60ba8cbfb7c1e09dc26e4768b4b00c761100c6e62885df26f801f |
Hashes for pycryptodome-3.9.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48821950ffb9c836858d8fa09d7840b6df52eadd387a3c5acece55cb387743f9 |
|
MD5 | 7f7528159f10b8c346914ca692613e45 |
|
BLAKE2b-256 | 949f0c70eff8dcee79f782ce06d6d6faac46738ddd715d321affc2e9b632676b |
Hashes for pycryptodome-3.9.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3a79a30d15d9c7c284a7734036ee8abdb5ca3a6f5774d293cdc9e1358c1dc10 |
|
MD5 | 7eec58694ef891d3a92b93f712cf7c09 |
|
BLAKE2b-256 | 96af03015aec2c11a1e6b2221cb82e01bc5d153bb0813b044ca0da50d3d9a1f9 |
Hashes for pycryptodome-3.9.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d8d85b4792ca5e730fb7a519fbc3ed976c59dcf79c5204589c59afd56b9926 |
|
MD5 | 8273c6b3f2e4625ae901240147f7b1aa |
|
BLAKE2b-256 | 9f0c3f5d6dc3d9b92f1b78640cdf1c2c197b3b777800268ad460ce05d3a231a4 |
Hashes for pycryptodome-3.9.4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57b1b707363490c495ad0eeb38bd1b0e1697c497af25fad78d3a1ebf0477fd5b |
|
MD5 | 0f3d2c70ac7c63cfd0532ab11b7b0d83 |
|
BLAKE2b-256 | a949146fe46dee2c79585e68f491b3ac5065bb2db1be191cb43a444961b12e8b |
Hashes for pycryptodome-3.9.4-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 896e9b6fd0762aa07b203c993fbbee7a1f1a4674c6886afd7bfa86f3d1be98a8 |
|
MD5 | 7cada7f0e9214bb295ef3b726bc4e25c |
|
BLAKE2b-256 | c8407193200a77eeb67326d5d59063696e37d1ee15173c353d32274ce866a34f |
Hashes for pycryptodome-3.9.4-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aec4d42deb836b8fb3ba32f2ba1ef0d33dd3dc9d430b1479ee7a914490d15b5e |
|
MD5 | 259d1f913aba98fc7f00906f8db34e1b |
|
BLAKE2b-256 | cca6f7e09ad45296eff20bd1db5aa14b1c9ea06826dd68eb2a7a27572c71d581 |
Hashes for pycryptodome-3.9.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54456cf85130e01674d21fb1ab89ffccacb138a8ade88d72fa2b0ac898d2798b |
|
MD5 | b1eb17fbacc2ff072db4d48d15205056 |
|
BLAKE2b-256 | 199d03cb909543d1eae05ad12eabf6ddb58a54bc075567e6898f2bc99e73ec05 |
Hashes for pycryptodome-3.9.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63c103a22cbe9752f6ea9f1a0de129995bad91c4d03a66c67cffcf6ee0c9f1e1 |
|
MD5 | 20dab50e40378dc2c7c8d21f0ffc1a7c |
|
BLAKE2b-256 | 05bc4787faa1c40eecb785767c0b615c7b91641aad75805ddd5412b071697730 |
Hashes for pycryptodome-3.9.4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c52308ac5b834331b2f107a490b2c27de024a229b61df4cdc5c131d563dfe98 |
|
MD5 | 48c5ff08bb44cde5f2b90a2cda9182d8 |
|
BLAKE2b-256 | 937930fb604bf82abbab621ecdbbca932d294e1d4cf95336bb3fc2b5871d297a |
Hashes for pycryptodome-3.9.4-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a799bea3c6617736e914a2e77c409f52893d382f619f088f8a80e2e21f573c1 |
|
MD5 | f4596a95b3b75d8fca703728d5987afa |
|
BLAKE2b-256 | 22676ff653b5de8b8e12559c2eddca31f6beac74ad4a412a5103d5e2e189d0ac |
Hashes for pycryptodome-3.9.4-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4af098f2a50f8d048ab12cabb59456585c0acf43d90ee79782d2d6d0ed59dba |
|
MD5 | f93fd0f66c3ff3ad25a7bacb68d3f8aa |
|
BLAKE2b-256 | da715d29b534a2cbd65ab46da99f62d5174b0a923b23d9244b1e6eba3c92a229 |
Hashes for pycryptodome-3.9.4-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72166c2ac520a5dbd2d90208b9c279161ec0861662a621892bd52fb6ca13ab91 |
|
MD5 | 422d057353746771981e6f8c9c64e376 |
|
BLAKE2b-256 | 617a910f2c7361c9edae5dcf2e9b79509d3931ddb4a056f3ea85cd24d7faaa3b |
Hashes for pycryptodome-3.9.4-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0502876279772b1384b660ccc91563d04490d562799d8e2e06b411e2d81128a9 |
|
MD5 | aa421481943cf6815aeb086f5107bf4b |
|
BLAKE2b-256 | df3323d312a56ba49f6f9ad86a9af057f604f65abf3bb500ba41c99c3ac3a585 |
Hashes for pycryptodome-3.9.4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4372ec7518727172e1605c0843cdc5375d4771e447b8148c787b860260aae151 |
|
MD5 | f94701d906981632289f16a5fb325914 |
|
BLAKE2b-256 | 555262652ed3ff98875ebc1021b9eaec9d824fb2021d4d14648eeadbead65524 |
Hashes for pycryptodome-3.9.4-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d9945ac8375d5d8e60bd2a2e1df5882eaa315522eedf3ca868b1546dfa34eba |
|
MD5 | 0aa05e49ed83af4387c41a2023e0133e |
|
BLAKE2b-256 | bd8f73150758c2d20da367dfa724e809cce2ecb59acf4ce5ea6d1c742c795959 |
Hashes for pycryptodome-3.9.4-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b55c60c321ac91945c60a40ac9896ac7a3d432bb3e8c14006dfd82ad5871c331 |
|
MD5 | 0d3dde99784a9d6b4406c8dc04b2dd92 |
|
BLAKE2b-256 | 08fb5a7634759f4392ba7f690d09d28d400f7022c2c937c6248a37d99e5b3617 |
Hashes for pycryptodome-3.9.4-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a30f501bbb32e01a49ef9e09ca1260e5ab49bf33a257080ec553e08997acc487 |
|
MD5 | 0e748b527346cae8c6caa3bd4f15271b |
|
BLAKE2b-256 | 3fb0139971f3e81e1520a2668a9ac41c89d91bc335074e36b418e3f748efc825 |
Hashes for pycryptodome-3.9.4-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 042ae873baadd0c33b4d699a5c5b976ade3233a979d972f98ca82314632d868c |
|
MD5 | c42046e1745b86b8253d8989a95fc2a4 |
|
BLAKE2b-256 | 4eea6bc42cc216ec734eac85487b870df94bb13feddf495ebae104598671d94a |
Hashes for pycryptodome-3.9.4-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 319e568baf86620b419d53063b18c216abf924875966efdfe06891b987196a45 |
|
MD5 | 147ad90fb0a10e1603d2157bd719f48c |
|
BLAKE2b-256 | 0fb1431167ba978be9d98d1e555ce1456c729a16d2b6a21f245f9d8b31c05a2a |
Hashes for pycryptodome-3.9.4-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3fe3f33ad52bf0c19ee6344b695ba44ffbfa16f3c29ca61116b48d97bd970fb |
|
MD5 | 4354a76fc2dc401f6aa8403139163213 |
|
BLAKE2b-256 | 42c54b21e3e2d108c890baa8721f6ccab8d752c92c4e6fc85e34cf04e460dfd0 |
Hashes for pycryptodome-3.9.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b9533d4166ca07abdd49ce9d516666b1df944997fe135d4b21ac376aa624aff |
|
MD5 | a36048d20fbf89240122969c586f44ed |
|
BLAKE2b-256 | 094a6aa4b0dbaf2a1836ca4d44af3d7388f79bdfee425db794d6ea531d405768 |
Hashes for pycryptodome-3.9.4-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68fab8455efcbfe87c5d75015476f9b606227ffe244d57bfd66269451706e899 |
|
MD5 | 6d617a0f65c1b2f1e26f7e277935c9eb |
|
BLAKE2b-256 | f91b617a6df2303bcb59be49ad6e6f0fb9636a71166ab9dad861eecdc154ea3c |
Hashes for pycryptodome-3.9.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec0689509389f19875f66ae8dedd59f982240cdab31b9f78a8dc266011df93a |
|
MD5 | f14e9e09960ee7e1a062470ec209b2f1 |
|
BLAKE2b-256 | 1d5d6c8325c5028c1d7c84a2bc826d08f18ce7893a39c848c6cb063583c3ab11 |
Hashes for pycryptodome-3.9.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2de33ed0a95855735d5a0fc0c39603314df9e78ee8bbf0baa9692fb46b3b8bbb |
|
MD5 | 8830e93584ae6c6333856c77d5ed258a |
|
BLAKE2b-256 | 4b1f1a861ac6d014640ed17019b4d5c8871efb6c5196afc4f3a45e2104c44ad9 |
Hashes for pycryptodome-3.9.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56fdd0e425f1b8fd3a00b6d96351f86226674974814c50534864d0124d48871f |
|
MD5 | be956c42531ada291ec288105251e8c3 |
|
BLAKE2b-256 | 5a85d3289ef5224905b82b8d450c038b6dc659678952be3fc995ac357128957f |
Hashes for pycryptodome-3.9.4-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c485ed6e9718ebcaa81138fa70ace9c563d202b56a8cee119b4085b023931f5 |
|
MD5 | d9f72613e7ed381dbef7c4344695a847 |
|
BLAKE2b-256 | 7ec364605a9a8dec4ce975a50728aa1767b0243e17ace25a0822d5b6043fb11f |
Hashes for pycryptodome-3.9.4-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c2720696b10ae356040e888bde1239b8957fe18885ccf5e7b4e8dec882f0856 |
|
MD5 | 04f7b25a501881367de8fb85710b3ae6 |
|
BLAKE2b-256 | 1f23e45f03137e496dc4f106e150cdeaf59dbdeb1a1ae70ff3e327b955dc5931 |