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.3-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a20b53826ed71df7c805fd0c26415a77302405f81e3c630d55447380de66b840 |
|
MD5 | 8d8aeecc458f7fc3fb82d8e5de8120e8 |
|
BLAKE2b-256 | 1e31fe5e7c25f13f4c3dd65b6e824d61c3afbc4a5ab45c1ed79c7cb01557ebf7 |
Hashes for pycryptodome-3.10.3-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0c62d1dabb1c00220dda864a580ae9fb17a0ba39509b90369878fd8f08ab1bb |
|
MD5 | 6c407927336dbfc90fe4af10f62e0cf1 |
|
BLAKE2b-256 | 4b7d99ca3c04f514ae17848831ce2b88a71126b2c0562a3384e397debd579a6e |
Hashes for pycryptodome-3.10.3-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e286e0f4c1a558603573125ffdd3a7c52e18005c01ea4ab41e98adee1fc88c5d |
|
MD5 | 366a9d02b8729a01715b19164ab859d5 |
|
BLAKE2b-256 | eb07d22e673e12fee56e2953043507cfb60f3a48caf3bc700baa54d1a06867a4 |
Hashes for pycryptodome-3.10.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aac9fed6a528d5c1afb413b4fcc619d6e1349edf52a6ce84557d0aaa2ec2037a |
|
MD5 | 0c5015e101c8e48b1292614467331190 |
|
BLAKE2b-256 | 597e1a004842f993c3eec31391b301263af7918c5dd9f71949cfedc604254f38 |
Hashes for pycryptodome-3.10.3-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a26d7b7517822e68c2f08be6b78673c545be73ed5cb83698e53f18877223b05 |
|
MD5 | 2ec52b2f15c6f5269e37a912ee61d9c8 |
|
BLAKE2b-256 | a6b1004e350ed04b2c99cc0e62d7ed64c433517db2cf5d14f04673320304bfa6 |
Hashes for pycryptodome-3.10.3-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4fe3a7c01c58dae879a12af8ffecd5471da2fbe166d97685dd2ee43553b6e79 |
|
MD5 | d902a19eef434a6fa69686773b17597a |
|
BLAKE2b-256 | 8b746418199e89b06696e46612eaa9c89340a5a05a085e4f692871c36d52c182 |
Hashes for pycryptodome-3.10.3-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c2fb9e5b2bcd4b3eb144d7a6fa573376b6651f3d49d03a03989bdf51ae65aa1 |
|
MD5 | e08ee143f30b19a2f08183b709767a0f |
|
BLAKE2b-256 | 6c5fda1f6a1edabf9ea790b02ce074123aa5570063552c05af1c09a7f268ee41 |
Hashes for pycryptodome-3.10.3-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79870ea4f14ea405e2f89b7351361cb32b2fbf1b9f4bd300e224d9e98c26cecc |
|
MD5 | 74dd9d818a54893ee050034c4611a302 |
|
BLAKE2b-256 | c0219237bd2af6e9efa843f6193c97a9966635226617f84296ac06c6dd8930ca |
Hashes for pycryptodome-3.10.3-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbf27d63e656b7333f17234bace91142a3bd30345f57eea670c34dcadd9db28a |
|
MD5 | 5f8e4bbc72918e93ce9e167170ad416e |
|
BLAKE2b-256 | 2de7603eb372bb89d8739305237e42f212d1333ea900f5516a43260a592f935e |
Hashes for pycryptodome-3.10.3-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a7d6f50104f9720e095949ebb650131ba87dcf728adac7ad7bc02653190d7bd |
|
MD5 | 7ebf3e19ebacdda3cba0141cc6440066 |
|
BLAKE2b-256 | b4dd3c7f8917fc56e71659b03e526131e57890bd21d488329225d4b2c945da78 |
Hashes for pycryptodome-3.10.3-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc0cc285e237b0fe10d06c7821e3cf341b4f72da55a3b0abcec1b9de005b2bd0 |
|
MD5 | 70b8c48fad2c5810401d3c2b7afdf804 |
|
BLAKE2b-256 | 41c714a8a3f69ff0a9f2c613f28c7423b6c234f9a0916a1956681952d9f519b0 |
Hashes for pycryptodome-3.10.3-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ace02faf7428615fc76ecd8aaa995809d66d230f226b27dda30ea70fb2f8e27 |
|
MD5 | 2f855359c22d60ad8b9133c46da5fc87 |
|
BLAKE2b-256 | 3da444a26251beab9295e11366288ffe62c64fcf307f759a05bec772d626202a |
Hashes for pycryptodome-3.10.3-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63c5c36095fed6300a2a839fb866203b391aadf2d51845f439ddc56519edd293 |
|
MD5 | e755646394760f19454908da2805588f |
|
BLAKE2b-256 | 6fbd47a9ec4a7ed69affb7779e056fc646bb982d951bb8ad7cddab58f6def9f2 |
Hashes for pycryptodome-3.10.3-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6d47b268fa0cedc9d43239bfbed6abdee99028bdc77305e20465b91cd36d8e8 |
|
MD5 | 689621f6f98794c3b41d012fe3de6df6 |
|
BLAKE2b-256 | c140a99c1d7045634b2d5cf8c6411a5b73f00b2e5f69169653f36234b42060c8 |
Hashes for pycryptodome-3.10.3-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f35fac714e4b5faf6d8ba4121357d6d5918d29b39846c011c3ea4d6f7fcfe56 |
|
MD5 | 7c13cf80d30a8206aecccbc7373cc936 |
|
BLAKE2b-256 | 394670737f097429a5f133103aec0ab91a83f7f5228da49f78cc1186c36982e1 |
Hashes for pycryptodome-3.10.3-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 587e775d9993d4fcfb6d75b80fdb5b216cc0e0505a047cd35da91072df4cafb5 |
|
MD5 | 95e1de085ec2877e5a55e35110f1fac4 |
|
BLAKE2b-256 | 1081e07dc8bc5dbe762b67b92bf76df5a36adf1ac0ac4386a8d866280fc1afda |
Hashes for pycryptodome-3.10.3-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03a8b3b61eee27348ee45dfee9138a6ba997e8f4f222537ae4bbafa000b88379 |
|
MD5 | b6b49e63f9d20850f7f54362a86a0859 |
|
BLAKE2b-256 | 3445ca1fa3e51d23e8af87d542768d443a675bf09505693964ee84da82b80094 |
Hashes for pycryptodome-3.10.3-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87ecb556a0137d7f8e75e62baac7ae43804ebedcbef89301fe756369201b52f5 |
|
MD5 | c2304b2dbc5e28930d463f3a39ed358b |
|
BLAKE2b-256 | 8f115a0265c1a32abff3853c655ff79438aa1cb888c21d37cdedace79f9026ff |
Hashes for pycryptodome-3.10.3-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a480aa37e72175ca4103fa9df1358e5b32a201f65749a99dad86295fc796a8bb |
|
MD5 | 065e1479dc9ac0f586db823028f7be2f |
|
BLAKE2b-256 | 4f4eb12d6087cf77b994d24799fc0da67a569dc2d1c41c169dc340f8c5189fe0 |
Hashes for pycryptodome-3.10.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d6420786210348767ee494035151344cbca7dca565e39e7bff576cbcbf5c96c |
|
MD5 | fa4411da810e85eb214066af08b22816 |
|
BLAKE2b-256 | 8e6b438772443ad5740c74fccd227e1f902f6a2b615b400ad567c98cb6a848a7 |
Hashes for pycryptodome-3.10.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a723cdd7c9f5dd8bf2ce25583fde7baec0f3f4b5dc324756adaa698a87570595 |
|
MD5 | 7e4f833de5681c55c8b3a45a929c0443 |
|
BLAKE2b-256 | b57b1834b41e31e064004c60c605e3d17cc11f669ead55c3ccbbcdc9dd0607f6 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01983746d01c9f16514d08711b27ba599ef5f66f3928215804bfe9f011427b14 |
|
MD5 | c259aa38e896fa06052782fe4e7c05e0 |
|
BLAKE2b-256 | 9b067406fc5f2e4ae7736f5ae0f1505ef489703cba3f01f8c04e152d94853555 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c13b363b168c74af37ca29fc138b29dcb58a934582986e1abcbb2b052f616ac6 |
|
MD5 | 8fb77daf59bb91367256a9973e9106d0 |
|
BLAKE2b-256 | c543a069738771057c416536cb3a63511acbb28ad51459277a8d9b66c8caf971 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82c26ceb052a41cf6a3a58b4aacf2b0cd25a51fba33fb6c75918bd34669969ac |
|
MD5 | 201dcdd518240c654de5881ce284a86c |
|
BLAKE2b-256 | 6a6e7bf666fd0290eccab1a5af46246d030c4a215be61a8bf58dd05af90bdf38 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cfd0b7d10ecba55a26fba88bec1bc002715dae1a9814677bc5fa2cb451584eb |
|
MD5 | aae5eea9fb767b378b42ca114c2a6aa7 |
|
BLAKE2b-256 | 3a6724ded47263af07d2468a870dcfd716fa024c082a4595df919ed2b592a286 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5a83d802d43c86898ce48e17fa6beb11bf2f3ca7cebf25e10b318ddbdb36b06 |
|
MD5 | 734cd9058b0029f26d785ed0eb83666a |
|
BLAKE2b-256 | 65975dffbf4c0e901f41f13b81992eb90ce9d013337829faef58008240791818 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aaa572c97970f215e7ebccaa835d4b8b176afba2791e405cbdaa983953c9a0d8 |
|
MD5 | 7eb7297501bcb5a0e20e8b4c2bab6b3e |
|
BLAKE2b-256 | 65be72eb2a5a820d95696d3f2318eaf5efef34d29402ec2a7a47a428e279a7c1 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8d04f2a4bcdcdef635c6d58a8647a76ef4d9a292cd537368d23b37f24052d7d |
|
MD5 | 55719af7456c8ee2cd93d3f498af32a4 |
|
BLAKE2b-256 | d1d385aae38428450bc4141ff40bb63e388bac4f6b86888840f5e202c4a9e672 |
Hashes for pycryptodome-3.10.3-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5aa657b1e2a5323de420266f876472e6b1e2e565a1b32e117cdb71a11fecf809 |
|
MD5 | 3e1bd42ac3976f1a7cb5c52d115a4a2b |
|
BLAKE2b-256 | d905e2c131035461d1e4143cdc2778e7b61395cfc88906bdfb32adc6fc22742e |