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.8.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7226bbab87b751a3cc052476f0db1cb89e6e4103eec18d1169b2bddd894c3d9d |
|
MD5 | d381d7a11c5b8ab2ba2de61e367383bb |
|
BLAKE2b-256 | 3a593058256e22b2f7bf1de623f475168fb08bdc2e08cc2941187eacf5578e07 |
Hashes for pycryptodomex-3.8.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcfb2d6ad91021bc1e4196eb293f8eca958161d5b8a0953fbbec3328a0966f74 |
|
MD5 | 17435129594fa90da35ffbbdbd419c00 |
|
BLAKE2b-256 | 2dec1cd58f9e16980db055b5ab501e8833456ca0af1e3fef190e73a0c8674cc4 |
Hashes for pycryptodomex-3.8.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e46ef46c89d50fb1b22adbbcdabea94e62ec5932ab83afe104801f913af9ad4b |
|
MD5 | 9bcd4b1f8a7e2c1d0e9856d83a08a6f8 |
|
BLAKE2b-256 | 8a8ffaa6426b32ed5954188bb6f29501e3b4c86b637aa07dfeae6b66d9e957f1 |
Hashes for pycryptodomex-3.8.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6355795ccb2bc9800a7d6a33a4ba8d8fdc2d1d9fd3c13cd8fa16f530239b1d53 |
|
MD5 | 970114cb204635826b029d587478cfed |
|
BLAKE2b-256 | 3bd066cffad42b9ceb0b429c063c2ae48040a316bd47ea34ff5f343c3e68d449 |
Hashes for pycryptodomex-3.8.2-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f35922bf0c7ed5ef9f1248a38ac7b44cda62549e2c57245ccf76fdec325d6684 |
|
MD5 | 96e3143afc8e0f8e234c1a39e53e55b7 |
|
BLAKE2b-256 | 0b348269943831ead4d9a09108faebf3bd8ea5f53e71c74d92c41a7483275e66 |
Hashes for pycryptodomex-3.8.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 029c7a150347c81899c14de0e4d5f918b8a0c68e8b0108dbe6192ad24358a845 |
|
MD5 | 7e5603bdd4c6704e9ccb353c777b7d26 |
|
BLAKE2b-256 | 06a7ebc3bf7198474e8e2318b2d2387bc7df1775840f035191a02f35e42cedb4 |
Hashes for pycryptodomex-3.8.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fc867a467841d209d001c49c34bbf56004e8b1e358db7dcb9b8200d2e8b25b1 |
|
MD5 | cffa4ba47940f9057784e361c3e002f0 |
|
BLAKE2b-256 | 4477cfcd42de0e734d9b2bd9a357f2c11bf84902ec74b63442a332a82369217b |
Hashes for pycryptodomex-3.8.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09d1d8aa842ba3d2d18c7bca1233a3d3ab0b083f657bb9f57adfd4fee5d7f02d |
|
MD5 | 8621f302da0e49040ff27bdebca879d7 |
|
BLAKE2b-256 | 70c207402fb5f381f59c101b4547a280a257d93388c90fb7d0a6d1f8e11c4834 |
Hashes for pycryptodomex-3.8.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceaea1e14b2df86278a1c252d176556c30b3e2568bb86ea37130c810376b7a6b |
|
MD5 | 7cd0993bccc7cc137faed095b95f35b1 |
|
BLAKE2b-256 | 236c9e4ece0b0bb0127ece3dcee1b46c7bfdfb8b942719698fb30121aa9003b8 |
Hashes for pycryptodomex-3.8.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cfcd1cc49919bd571de6e5f3d99ceac0e3898a83d3ed4dfda6d12166d848d88 |
|
MD5 | e3b2e9f1e8005b6647fbeb4eba5d21c7 |
|
BLAKE2b-256 | 8940ed2ec83fc50619a6a5fbe6d8dc2c97988d806605c5e60929c1b58aac4941 |
Hashes for pycryptodomex-3.8.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6390ca23b2e1a5c2a9d037012b923b6b2fc788cba234f45683f1ddad6f4112ad |
|
MD5 | d69fa99fb5cb022f0c2be3f4ae96852f |
|
BLAKE2b-256 | 43572d10fb943fc418de25642ef0af86b4780c9fffd22e96f560a9fe600d411b |
Hashes for pycryptodomex-3.8.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e56438a25b32594ece62dab9df8d4349e935ad2a7a1f20cc446a43b28e4d0940 |
|
MD5 | 8453a17bcd9a40460c24328a0c631385 |
|
BLAKE2b-256 | 9bf9bc4a205e84181bcf4958ff50cc90ecd8c02b98145bc83f04c486f2653a96 |
Hashes for pycryptodomex-3.8.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80439f10be257b65ee6c9db3c5a3d1450b8f1e7ab5130d7c7ddfb373ca13c25e |
|
MD5 | 3ef45b4ab517ce388bd3087d34fa0943 |
|
BLAKE2b-256 | 466082e94060db79fd3ea70b4ec534c1d60a1cf768c9da5228fa1685e92ed602 |
Hashes for pycryptodomex-3.8.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c90d8f9919e57be2f0cb5840a05fdaadc5fffefa40192aebfe459cc68b53ee9f |
|
MD5 | 4fb5ee512c83e4ede2c211a971824830 |
|
BLAKE2b-256 | a1ae7e1b2da20b85c615b7403788ef20b6f4672cd7735c1196c31f6effc7b494 |
Hashes for pycryptodomex-3.8.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5f641fa8640a4bdf31621f920bdf2c646f823a9ee1c7525f57cb92ec710fe0c |
|
MD5 | 0a8594ef6dea9eafdd379e15a7e609d6 |
|
BLAKE2b-256 | 9e640f28a52833a38a75cb59aa4fa69346ac5ea6165a1468a4ba1fa5daca3f45 |
Hashes for pycryptodomex-3.8.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | feeebb7ee5c5b2be1f3498da517226668e775d1260d52480c59d39c16dea03fa |
|
MD5 | a048e2791c066a404dde18d99b840f80 |
|
BLAKE2b-256 | 7e0b3c3f0a4c659aa6b6e0f2fe479778564553b24ee12cc76afca0a6a47ee9dc |
Hashes for pycryptodomex-3.8.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b28007bc34fe7469f2097c07fc77b866650e4695008cf953d6caa247296ea19 |
|
MD5 | ae926d58eed61757493883396059646e |
|
BLAKE2b-256 | d9b327910e360bc79c9067f3f3ba8185ceace6ac9aa5856f9fb53471fff8ebf1 |
Hashes for pycryptodomex-3.8.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2db8e8e36cb7b3ae16ae782453fc7c4887402b5afe268f1e4c602d75e999359a |
|
MD5 | cf16f3e0bc5edb8579000f0a392b5360 |
|
BLAKE2b-256 | e483f7f2f8514fbe014b372f4fff4023c6fae8b8685b9d9210ec3cbc27d449ee |
Hashes for pycryptodomex-3.8.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7240cde2dc32ee6588d03b85fb619cb3629e6d302d32c807c82dadb4233b9a48 |
|
MD5 | 5830567df0d688468d1a9e5fca6aad2b |
|
BLAKE2b-256 | 00f0dec50173ced09d7eff255e81b3e06e5d69cc893e5938cf1fa36434813f05 |
Hashes for pycryptodomex-3.8.2-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12d2b8b4dc3d8b464b9db1e2f54c08a56e8a255110f927c69ba2e17456bfe8ac |
|
MD5 | 64cd32be74163792052380d9620d5a1c |
|
BLAKE2b-256 | df32bf88f25775eda9ddb55831c1b833b2771b5d3b4ff69e836530e40470670d |
Hashes for pycryptodomex-3.8.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9e63278c617940f7f3ccde373cf1120115a842392d37c419cf68bf38ca53fc0 |
|
MD5 | e50293b0b50cafee5855c9b7fc0c23be |
|
BLAKE2b-256 | 4ec05960e1e9030e9e027e8dc3222bf41868e9b3fcefe826dbb75606a98046e6 |
Hashes for pycryptodomex-3.8.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83d6cab80d64298e84f6d9962dc4c4f2619805fc11aed939f0257e313028ea15 |
|
MD5 | c923eb810754ab924dc2437024c1b738 |
|
BLAKE2b-256 | 4eaf248b1ea1bc61bbc609d5814ac9bf3aacf6cff844b843e200c738dd2c5246 |
Hashes for pycryptodomex-3.8.2-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc951613c5deb7f9c9b42a8d147e7094a2ff4f9be8128511e30f551975ada870 |
|
MD5 | d2d2b109dcc120f8c8e2a19a1fd5b28e |
|
BLAKE2b-256 | d57115c529b02720d3cf4dbba4e3b0a4d10ac743d8d8c258e199c695ce4679df |
Hashes for pycryptodomex-3.8.2-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9586b41f68b28fbaaae5232055ef2db2cecd37661e6792d19fb9c24792281811 |
|
MD5 | 88180226220c81b544534b565bb56269 |
|
BLAKE2b-256 | 3780c267edd11ce74f523a56265db1fe86a7dc11adc6fd6df465c40b9572de67 |
Hashes for pycryptodomex-3.8.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08f0f3f89e6561f3c7ad99c4fb5f4a5b596701edb0aa92ac32c166b615517740 |
|
MD5 | fa195f7c8c3acedd22203726199f47f3 |
|
BLAKE2b-256 | 378f5757267fa95f6aa826a1121a551b51d08ff1175a9edbfde46893540a1482 |
Hashes for pycryptodomex-3.8.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14f509a672c24f27fc8e589be35f3950ac8b4338b4466ff2b33de03124646568 |
|
MD5 | 0447655c6f1e6b72861fed6a13f4c12d |
|
BLAKE2b-256 | c1b4f9ffc714f52dfed84f3cb2f34467a11112aa8a35cc9d90c340ce93fb30e9 |
Hashes for pycryptodomex-3.8.2-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 267646fa6855fc65679b95fa01b3f032758a3d32b41858688c8ff81761a1a2f6 |
|
MD5 | 9631c7b28cdc72ac91bf8d99ca1d0f11 |
|
BLAKE2b-256 | b4866faa04c66a0f0a1a6997dabeb1bbc29a6432874a8423fd221d9483d0081f |