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 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-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 pycryptodomex-3.9.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f651173c4bb8de6a96493e5cc03b2838eedf4bb1cbfbe2b354e40a2f2f245fc |
|
MD5 | 1bf8f2a2fb03b31847fbeecc577e6efd |
|
BLAKE2b-256 | ffaea70a0a0e9a79fff1a9ede05a6aa8b77e8145dd6e01cb49d16816e465d867 |
Hashes for pycryptodomex-3.9.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c43d5d7516b0dc8436aef6bf9ebb9fbeaebcbbc4cb1b6a23be4a5f843c2614e3 |
|
MD5 | b0455840d7bf09269eece673a7bd036b |
|
BLAKE2b-256 | 7479990a087bf06ba9de4b4f52831f46320eaa34b9c1c744ec1278b841dbf3f4 |
Hashes for pycryptodomex-3.9.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de39d7c456147755e5610177bd50cb7c89f74477d608b5ac055fed4e7c4c35c1 |
|
MD5 | a46574de5917c46a9a2911d745d8b26e |
|
BLAKE2b-256 | 1f9676cf0dfd5658760cf30dd64102a4bbc84f2f03e4ae840eccbb236871615b |
Hashes for pycryptodomex-3.9.1-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea368b7b4f36c5524d7b47aa583db604085958b92ff6580075230c8d7c88cdbe |
|
MD5 | 2a0cb56a8e5d93fffa1f54e833112000 |
|
BLAKE2b-256 | 34935ef8c72ee090c77e70ad8279229f6edb3ca3baf65a4285d7bf9cf6d52e09 |
Hashes for pycryptodomex-3.9.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 227e660ee3835284fc6195163c467f8d21a1de51d0aa85d32157a1fc4bf16b9a |
|
MD5 | aa384775e0d727161e919cd6f2f6a257 |
|
BLAKE2b-256 | 4001484c537d51e7a6a39b864f773931f67fbcbbb07bb5cf25b46495554c7bb7 |
Hashes for pycryptodomex-3.9.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61a586b0cb85bc8c60af4ddcae24928a3476c944cb37eb7b9066965bc1d4b4d8 |
|
MD5 | 3185c3472138d9b145e36e4a2b454f87 |
|
BLAKE2b-256 | 3aa8ecbf2e8bdfe661257c84896756d2633bc4d3c75fdd1dbe8fca29e4ebdbfa |
Hashes for pycryptodomex-3.9.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e4b459ccd6bfe55cc6b030b8983040bc8956f5757b621ae32dd0a26b0f85a91 |
|
MD5 | 797c74e1205c4cfb0fc25e362041a8e2 |
|
BLAKE2b-256 | b7148329e5efdd781711c857c61cbf1b74d3e47fb34153dd9f6bc1cc727f506a |
Hashes for pycryptodomex-3.9.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2b867277ef5a996b2198bec149abaeaeddbe57a77a4f6840882be382af72297 |
|
MD5 | ede81ddc3958e7f34b62b46029496e25 |
|
BLAKE2b-256 | 0ef1ad8802c70b4be71942574ec4d4fe57b3511796d980f37f4a50ebea7f1aa1 |
Hashes for pycryptodomex-3.9.1-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad39a8d3be6c5aad42b1ef839c49a50185618b26d5f1b555b1edd4d9d700e3b9 |
|
MD5 | 7c90090edf50a69aaff39292ff1b369c |
|
BLAKE2b-256 | 99ed7f45047a950b2b9b223e41373b1719967a35041e7303380878d44e36901e |
Hashes for pycryptodomex-3.9.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa18ad3da8da74cbd119a6c5460079c7357ba8775b2edbc5a78722fc1e52f881 |
|
MD5 | 30f41f9a4e084aa4b6c2cbc234bfc542 |
|
BLAKE2b-256 | 40bc1915d1c8e36d006e12f851a2e367948b1949eccfd9f9f0b88cd052406c2f |
Hashes for pycryptodomex-3.9.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e0bc594c61bd1db86c0060a5eb351c22a6c4c154315a52af1c8cd24c4e6a8a3 |
|
MD5 | 7daed6df3bc74c9c06006e65fcec5671 |
|
BLAKE2b-256 | b3f51de18cd2236fe1a5e9763c3e9f4f64d4b933130a6334a45b477b8384ee9f |
Hashes for pycryptodomex-3.9.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce65a7dc9162a6e676f336e45f6602297981afa82f8e7ccc690667316c6b449b |
|
MD5 | 12f6ae9bf1072d7fd30ef2e07bc51e02 |
|
BLAKE2b-256 | d1b94583d5b6a15a8213d21f24f0d1faa71951b64555b4860612df8eef696d24 |
Hashes for pycryptodomex-3.9.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17625d9f9442d3567b2532795c9232ed80cc1d6c91064ad48c802f3bff2b937d |
|
MD5 | 768a8798067332e0124277bc1f4f52ca |
|
BLAKE2b-256 | 567622e52308ff7e31bc5d4382bad5193a0ca414e06340f1616bd7ced0016424 |
Hashes for pycryptodomex-3.9.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0713fc29cddb14f977887ccf3199d1a00d0b040e8c35785df20d107ad59efabc |
|
MD5 | 7d5ac4a5ba90e5f51440d8b22d19b0c4 |
|
BLAKE2b-256 | 74094ce5f5fed29b7cf1b9e393a8ae5eed8dfeee09f6fac559a5ee49d1da36a2 |
Hashes for pycryptodomex-3.9.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 158428c0f337984cb3611484d9f61faea973aec624c8f88c5809ab88adab0884 |
|
MD5 | e4abefea8f198d7c69f6c0a3c0cdcda3 |
|
BLAKE2b-256 | f640018713da29e11a64a3d1093211f7f7bc5f3bfec321f829c98257d5b4fe77 |
Hashes for pycryptodomex-3.9.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce38cb16b6f41c4b579e3e9a9d66c36ba24192cc0518ce09313c25ae44d2d74 |
|
MD5 | 58b8ee649bad02d27a42843fda5cbfcd |
|
BLAKE2b-256 | 9dab70e38c0c7573c1615a5f6c1b1a1badc94e09a5907b9de12e2af2f681212c |
Hashes for pycryptodomex-3.9.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f36378a699f201aea3e431a3c217c16e63abbe84ddb8d9bd0af9b28e3f826aa |
|
MD5 | 671eabaf1b17565ff955ceb8b786f77e |
|
BLAKE2b-256 | d895a5d54e8d60362cd335c0d2fd1f3a30799548960a21939e9631889c8f4bb6 |
Hashes for pycryptodomex-3.9.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 643bea8898e875e54177c546f2ac704317937230379a9d295ece844c79e00cdb |
|
MD5 | 82fb31af9f20b97ff17a2e8a930c7723 |
|
BLAKE2b-256 | f8fc5d794c5654a64a4a6e60dfa0fb27405bf0b4cf20b561ac5306c0cb73ae77 |
Hashes for pycryptodomex-3.9.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9146a6cf9eeb4683cfffabc7093fd1063076185d790680596f7a2dfb40f6b4b9 |
|
MD5 | a02ac73f06c3f616b0486ed5d2ea493e |
|
BLAKE2b-256 | ab8a2b54fdb6e4eeb230fca959666c00b2b956720ae67e014fe4c152eea01ffe |
Hashes for pycryptodomex-3.9.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b17b2f5f65dffdeddf06bb82eb73a6aa55766322c3c45bc5032f9e3259adfdb0 |
|
MD5 | dfa1e807ec770036e0dafd0e435c1e21 |
|
BLAKE2b-256 | b4e8134b32aa519125cf87199ec5f46dc6aa3a5a3bbbcb2f2c4238e56b80d939 |
Hashes for pycryptodomex-3.9.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 179125d0b2bcbf5cf9ddf9fb74fe13e30d19fb1c2691cac43b8b37d74df9ddf6 |
|
MD5 | eadee59cb4f14f897500878040f069e8 |
|
BLAKE2b-256 | 3f19aacbcc30ea7a11fb5d6275085c8dc6d1aa64d7800fbbd682a7666d91dbf6 |
Hashes for pycryptodomex-3.9.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 110651378be063d5e0e653d107a14b511bd45c355968a32270f5b1bf8c093056 |
|
MD5 | 61fd937bb4e36885da8a15700563e99e |
|
BLAKE2b-256 | 11eb86ad195cca713d16a30e6fe254fbfbc31a683931375acd87e6965766586d |
Hashes for pycryptodomex-3.9.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7403d7addaaa4649777ce487832ef8421222960a10d7a95b0f2c9efd217a93e6 |
|
MD5 | 711abbffaedd6f362d3d01be9062c5a3 |
|
BLAKE2b-256 | 2b563c3139980a2fcaadc86a8a7f1e276b054748d7fcd27d11c00783762dffc7 |
Hashes for pycryptodomex-3.9.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9829d8aa2fb52646eda9041b785e9c6825fc1f1054f2254046fb7628800acb8e |
|
MD5 | 9e9b9347d997b8da466b71627c1c66f6 |
|
BLAKE2b-256 | 671c4c93e67eeffc10287a193b28ce4d060da53920e4596f74ce1130027ff778 |
Hashes for pycryptodomex-3.9.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33b0e5c9ca02c099ec537138e8ffee1e4d054e49d69258062d89ddbd9f660000 |
|
MD5 | 4f3fe616d23948de09fd4aca9d442080 |
|
BLAKE2b-256 | 0d31342f16e2d6fc86f0bdf8a9f4cb8f1821cf48d98675b3b8c3c882aa3c22c1 |
Hashes for pycryptodomex-3.9.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba5bce9e1fc21160c27015a705e80f49901f1c42aa8bf96ed1d650ce4b5311bd |
|
MD5 | 048e7663cd6dbe65969b81c98e441791 |
|
BLAKE2b-256 | ca86967b0b73f9b96c377d417f9afa8d09e0287a1d496268427dc8928b0fed4d |
Hashes for pycryptodomex-3.9.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff75fa26b7f8e1eaeba9edfc50b1d21bca913e743ce993a189b07bf483bedda0 |
|
MD5 | 462b18f3c531b156928a1f62abacad2a |
|
BLAKE2b-256 | 5817449d32ceba6f49ce3822dc55b37c79509beb852713f9d780e3d42648d6de |
Hashes for pycryptodomex-3.9.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b10bb3c640d7666993d5b0aec0e5334131386eddbd200aabcc123fe07c2b8928 |
|
MD5 | 1774950b85058df200622e4abf3078ca |
|
BLAKE2b-256 | e4600554a2bef1f457a3df5f11c3bc2b16bebff4efb3090f802e4c486d7fdd9d |
Hashes for pycryptodomex-3.9.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42bead6e7dbca9328a6601ff41d25554606847d92b0fd198ca3f6c971c662c07 |
|
MD5 | 9b3fd29c6db41fd9cf5d4f0830545569 |
|
BLAKE2b-256 | 66fdb783d24d772ce43385b5bbdfa20c84733a11d91bc3c6c4e96edfcf685fee |
Hashes for pycryptodomex-3.9.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e1e616d12f79f256109de14aebcee1bf7e0a78d00b3de6c9a0cf2eb2a80785c |
|
MD5 | 635c492ba19ec885af37f1731f9a2f95 |
|
BLAKE2b-256 | 273ffad7c4ce04be8c242f22199297c93fe4b7dafdc9aec9bce947c6964dc54a |
Hashes for pycryptodomex-3.9.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9a38c3a85dd3dc6cae43eac94b73485fd7e5a1daf74bb510d7220a8b18482d2 |
|
MD5 | 30f71aa0fe3fd2d37274ffb710b26528 |
|
BLAKE2b-256 | da20b27c79e41a1591e89a3bdc2e43535d864ecb90c3fa1b5858c549b046cca6 |