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.10.4-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3faa6ebd35c61718f3f8862569c1f38450c24f3ededb213e1a64806f02f584bc |
|
MD5 | b2822e705e884c9ded3ba77242e72910 |
|
BLAKE2b-256 | 4cb1fa7a8586d87e7801dfbcfb61cd5835b7c5325259f46fae2a7d6e6020d581 |
Hashes for pycryptodome-3.10.4-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11d3164fb49fdee000fde05baecce103c0c698168ef1a18d9c7429dd66f0f5bb |
|
MD5 | 9ed7cf18384b2a72cbf10588295bfe87 |
|
BLAKE2b-256 | 268d5659b25407339316021f763d0c226b8c0d429124045826c04e53cabafe3d |
Hashes for pycryptodome-3.10.4-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c61ea053bd5d4c12a063d7e704fbe1c45abb5d2510dab55bd95d166ba661604f |
|
MD5 | 127c8cab97a9d9822bfe9414db9a1662 |
|
BLAKE2b-256 | c8a71312b3c80a785d70e4b5fa9fe98064aabbe932c35db9781cffbaf8a383fb |
Hashes for pycryptodome-3.10.4-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24c1b7705d19d8ae3e7255431efd2e526006855df62620118dd7b5374c6372f6 |
|
MD5 | 82b45465bf7e0e3d01dbc0c1b665b3f3 |
|
BLAKE2b-256 | f162e9d33d64ede74579733aa9cc2ee16384d4f222722f55335b952c5c941451 |
Hashes for pycryptodome-3.10.4-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cefe6b267b8e5c3c72e11adec35a9c7285b62e8ea141b63e87055e9a9e5f2f8c |
|
MD5 | 2a76dd721637d6b4ec16b22c675d39b6 |
|
BLAKE2b-256 | 45f396c5766ef0b2d8444c7dd95ead7793a1cc2ef147d826f034ec2173e79236 |
Hashes for pycryptodome-3.10.4-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04e14c732c3693d2830839feed5129286ce47ffa8bfe90e4ae042c773e51c677 |
|
MD5 | 265d8f0e1201cab30f98d9f229ebcb79 |
|
BLAKE2b-256 | 14f8bd8fce7108f0ee923a5d2280ed39c50d6c81df8cba6924b2407c6e32ec83 |
Hashes for pycryptodome-3.10.4-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 851e6d4930b160417235955322db44adbdb19589918670d63f4acd5d92959ac0 |
|
MD5 | 34a903a2bdf2ca48701be0e57819e388 |
|
BLAKE2b-256 | 0a47bc9bcadc94eb7ee8207c17baea76179475a16ee85b53e3871ef1a34f7035 |
Hashes for pycryptodome-3.10.4-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e8fc4c48365ce8a542fe48bf1360da05bb2851df12f64fc94d751705e7cdbe7 |
|
MD5 | bdd7119348084ea9aa2fc4770e0a73e2 |
|
BLAKE2b-256 | 146172b3e21260cdb1c0789b64db59ac167126a84901f838dddc1fc78126f28a |
Hashes for pycryptodome-3.10.4-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49e54f2245befb0193848c8c8031d8d1358ed4af5a1ae8d0a3ba669a5cdd3a72 |
|
MD5 | 92995ade9ab897afc3f306eab41cdd1f |
|
BLAKE2b-256 | 5df91a312576ae51d3d2df5aa0b9718ac588ad40c5d4db6879848341d477037a |
Hashes for pycryptodome-3.10.4-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7efec2418e9746ec48e264eea431f8e422d931f71c57b1c96ee202b117f58fa9 |
|
MD5 | d893234a87b0ff13d231203165c7c362 |
|
BLAKE2b-256 | 639024496abdedc33d1689f7fd63f802e22b4a254f691d4372137b3ad17794ec |
Hashes for pycryptodome-3.10.4-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 309529d2526f3fb47102aeef376b3459110a6af7efb162e860b32e3a17a46f06 |
|
MD5 | ba67222eca125615623e88b3021259c5 |
|
BLAKE2b-256 | 5a462cd111239ac8930f07234374dcbc672d55648db00dfb99cd0029177cfdd9 |
Hashes for pycryptodome-3.10.4-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f9fb499e267039262569d08658132c9cd8b136bf1d8c56b72f70ed05551e526 |
|
MD5 | 081f266ddbf23bb684eddd9b6669bc11 |
|
BLAKE2b-256 | 00737471a2d32affa35d17eb95c0f06e8af2b2bef5cd7ba07128a54d9c719b03 |
Hashes for pycryptodome-3.10.4-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac3012c36633564b2b5539bb7c6d9175f31d2ce74844e9abe654c428f02d0fd8 |
|
MD5 | 34cfeeda6dc6e0af229aaabc4d364041 |
|
BLAKE2b-256 | 09ed04c73ad3a7a19c498df34e753454bad1e41221c07cf188a5a5731b9f6224 |
Hashes for pycryptodome-3.10.4-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d713dc0910e5ded07852a05e9b75f1dd9d3a31895eebee0668f612779b2a748c |
|
MD5 | 7872ee672d6eb10b6d85300f526a51b0 |
|
BLAKE2b-256 | ddff34d4ac642f01fa83884b02f7ffe6dd70e8c503b66234966fa301766c5c7b |
Hashes for pycryptodome-3.10.4-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7471646d8cd1a58bb696d667dcb3853e5c9b341b68dcf3c3cc0893d0f98ca5f |
|
MD5 | 46b0652759d8d939e5cb514c37c283e0 |
|
BLAKE2b-256 | aef5bf6d7559b7a78161a1dc7b4b51f883a9708e80da427e076d082fb320cf9b |
Hashes for pycryptodome-3.10.4-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 217dcc0c92503f7dd4b3d3b7d974331a4419f97f555c99a845c3b366fed7056b |
|
MD5 | 5848b704e8243c06e14cf152cd392b3a |
|
BLAKE2b-256 | 0a7ee4f2477411b83ae99a34c14ffc626d0cea0af5ff8a617562f971c1d2ee85 |
Hashes for pycryptodome-3.10.4-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db15fa07d2a4c00beeb5e9acdfdbc1c79f9ccfbdc1a8f36c82c4aa44951b33c9 |
|
MD5 | e0f84e74d8c38b75d180f9aded4d8db6 |
|
BLAKE2b-256 | 4df4eefdc26466fe5b4036349afe4bd78468fd20781af0b2ccd65766350fa522 |
Hashes for pycryptodome-3.10.4-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97e7df67a4da2e3f60612bbfd6c3f243a63a15d8f4797dd275e1d7b44a65cb12 |
|
MD5 | 49be34c7511f8e3edd5d46668e32bf7b |
|
BLAKE2b-256 | fb559208d6947fb1c5540a3db0e6950f8fa44a9d678e42452617f9e5aa61a085 |
Hashes for pycryptodome-3.10.4-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54d4e4d45f349d8c4e2f31c2734637ff62a844af391b833f789da88e43a8f338 |
|
MD5 | eb6de63de78648c9046a1a725cade8b6 |
|
BLAKE2b-256 | d9c9ac8d44b3be58a30379d2470f8301e5efa6fb3736fd21c65d45e73aa90fe5 |
Hashes for pycryptodome-3.10.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a2312440057bf29b9582f72f14d79692044e63bfbc4b4bbea8559355f44f3dd |
|
MD5 | 2079b7d5d1c9e88f3a8571fecdc33072 |
|
BLAKE2b-256 | ec84793407c413009e02401c144ea61db30a70d697d9d3e5dc56cd541e2e8d3c |
Hashes for pycryptodome-3.10.4-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1daf251395af7336ddde6a0015ba5e632c18fe646ba930ef87402537358e3b4 |
|
MD5 | 6af7cf4b32f295d0f8225237423d8fbf |
|
BLAKE2b-256 | f9a2ec1d26c05ae69f7fc183ea1f048d1fb4f00f522e4e7ac32922d759a41615 |
Hashes for pycryptodome-3.10.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b45fcace5a5d9c57ba87cf804b161adc62aa826295ce7f7acbcbdc0df74ed37 |
|
MD5 | f31a54244e5678888f844e2d38dc23c7 |
|
BLAKE2b-256 | 49f733856d4d8d2797fa092c915eea77e3ef9ce6aaa94bd4efe567f227651c31 |
Hashes for pycryptodome-3.10.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6469d1453f5864e3321a172b0aa671b938d753cbf2376b99fa2ab8841539bb8 |
|
MD5 | ef8c1f74740d3c04c6353151aedd7375 |
|
BLAKE2b-256 | dd90c374261d6c848bb876e5ad73a662bc6e144b49b498465178e046edce7911 |
Hashes for pycryptodome-3.10.4-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a153658d97258ca20bf18f7fe31c09cc7c558b6f8974a6ec74e19f6c634bd64 |
|
MD5 | 37db33ba6e217ed1aff25b929d401bb8 |
|
BLAKE2b-256 | f73ac38bef6f56e7f65af394805ece7646be36ddfd5b9697ffa7b6be6fdb9f01 |
Hashes for pycryptodome-3.10.4-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b217b4525e60e1af552d62bec01b4685095436d4de5ecde0f05d75b2f95ba6d4 |
|
MD5 | b542912a2a626061edcc6e80fa88cbe5 |
|
BLAKE2b-256 | 3e1a9d8253f6b17b3e4dcb18fd14ea963372badeaf4423c5727378080549eb5e |
Hashes for pycryptodome-3.10.4-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e82524e7c354033508891405574d12e612cc4fdd3b55d2c238fc1a3e300b606 |
|
MD5 | 2ac139da41bb4479a96f1bd1a734c0c0 |
|
BLAKE2b-256 | e47d32eaeedab9614ba0e4f469343e73c4c2fe7d02d43692d4ea7dffd5c1e838 |
Hashes for pycryptodome-3.10.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ec154ec445412df31acf0096e7f715e30e167c8f2318b8f5b1ab7c28f4c82f7 |
|
MD5 | 80b6100e3e95db7f3adbbedb1d321bfb |
|
BLAKE2b-256 | 154d70eaba45b509e666ac34e8f7194a191c8434b8240caf6350a73986bc9f68 |
Hashes for pycryptodome-3.10.4-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66301e4c42dee43ee2da256625d3fe81ef98cc9924c2bd535008cc3ad8ded77b |
|
MD5 | ae8ea77c5218a40c575c052021692e90 |
|
BLAKE2b-256 | 15c964608b71eed359ece9cb4cf365a5d974a5210bac54271e0241a3b057454c |
Hashes for pycryptodome-3.10.4-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91ba4215a1f37d0f371fe43bc88c5ff49c274849f3868321c889313787de7672 |
|
MD5 | 250b2d49aebb396e569b798619f4aaeb |
|
BLAKE2b-256 | e81b82711b6481778fd78213ddd72f70be0c652a7fd3ca79e6928917c7449220 |