Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.4 or newer, all Python 3 versions 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 curve 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.6.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b74138a25adc8c9446cf030a962a031dc6327198972f266bd834702dafedaf14 |
|
MD5 | 088b9a33d78e0803ee2b44e311896a0f |
|
BLAKE2b-256 | fe744b622a7df2008ea573ca453cc3e6a38c3a33da4b53335a624d91a45a1eb3 |
Hashes for pycryptodome-3.6.3-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ecac8fd76a0cfdecbe4e8ed71698c485fdfa4dc12ac23ff41593029d284628c |
|
MD5 | b202192e53371418d9e634f2f77ad464 |
|
BLAKE2b-256 | 374547d777d0db64e0d1f2397ecdd8c3d3e108ce84cbfd75da5e67a52c058555 |
Hashes for pycryptodome-3.6.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a2c9cda8b358f3eb4b2a29a7de48e18e07e25beeee7ce51d30b20b44f48b066 |
|
MD5 | d5c0b45b7e9684eab7de1049b371dbc8 |
|
BLAKE2b-256 | 0f5da429a53eacae3e13143248c3868c76985bcd0d75858bd4c25b574e51bd4d |
Hashes for pycryptodome-3.6.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59a16a0b2c20b18499b5404d7cbe0ee78eafe2cf98e17b2695fda6f096ad0323 |
|
MD5 | 60ac094a974fdc1ec4c7079cfc1babbc |
|
BLAKE2b-256 | 6ad04e9ec29d3034a431ce342fd1f82eb8e2833cb0cba5df49d6c95e39c5e54d |
Hashes for pycryptodome-3.6.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 123d7e63b8256b4aab2d5664627cd789adb4e47fcb548c9a5a5bd8f3053ad591 |
|
MD5 | 9c7bf88afc536a3d9d415bd72ddf32c5 |
|
BLAKE2b-256 | ecb68086410f552e7173d9f62b0ec3dbf44958525232dc8ac670f52a4482b101 |
Hashes for pycryptodome-3.6.3-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf5b541b86a51feacbbce410bfc53e9807a79cce6568279340d154e08c65d849 |
|
MD5 | 05e52626fd2d612ac1e720cb3ffdec27 |
|
BLAKE2b-256 | 12e9a1236d17ed82d7a84b7c50e74f52fb573140fd5f953f5e91ec980a462e33 |
Hashes for pycryptodome-3.6.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8d41f4dec7b7b4a14640fe8c7002fb2a4393a9cae04ac7cd8ac4a29c6178bf9 |
|
MD5 | 43b4dc779a9d0cf1cc99755670fd25ff |
|
BLAKE2b-256 | 2c3da2249c939baa8cdfe7224a5536541668fec5483f2639c6c7c5d3bba80d0a |
Hashes for pycryptodome-3.6.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9930909e13ae3d518759cd3b5762b94a7303feec080aeffb66b130c530e55bf4 |
|
MD5 | 9dc87cfc23101b0d0fc70cf73b6b84a0 |
|
BLAKE2b-256 | 9bdae004f963217c4753d46c7948629071ad8f6582f17259f45c5987475d0459 |
Hashes for pycryptodome-3.6.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b947756b11e14460f5669f6f58bcf931319c70dac8a55a7bc2d88ea29693030 |
|
MD5 | 9c135efbe0b00e20904d4e548f522edd |
|
BLAKE2b-256 | 575565a54e2cdf926dbb1eb74263eba7c56c0a12e4e3ffbaeee1962366d5fd71 |
Hashes for pycryptodome-3.6.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f277732b62e975669fd789ed964ad5603253c828bf817bfdc2de3d544979fb1 |
|
MD5 | 8762bfa66a6e25a64b964b1efa0f7ee0 |
|
BLAKE2b-256 | a4786e8003733aa803354571413e7114f9ceb7b6b0c1086a8c101a121ccb398d |
Hashes for pycryptodome-3.6.3-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46529b59abb0221d90d509bc173629274b988fe0ba09c594c669d0638e5179de |
|
MD5 | e8fda956aafa862f81e230069d15d984 |
|
BLAKE2b-256 | 9dbde1a99a6e9ef7dfa64a22c7042817919815ae1783b31e030b8502dcea8659 |
Hashes for pycryptodome-3.6.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0950432f541e9675c3036a12f8f956a6086f3417c2d265306be2e22140a0161d |
|
MD5 | 75d2098b9aa3222e0fb70d4c3eef1e9a |
|
BLAKE2b-256 | 57e21c17ff2bd53c0cfd5e48a340a9d4787b34a3642d75ad05628932d49aab75 |
Hashes for pycryptodome-3.6.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06bc9d77bbde06e364e5082af9eb7aa521ddb6f3930f96c9b30e82720e67805e |
|
MD5 | 05dbe377c410374d8381623db7021496 |
|
BLAKE2b-256 | b6afe09f2f80aa823d8c53d5c3f9cb14cbfb662401fe83159dbd62071ac30946 |
Hashes for pycryptodome-3.6.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2997964284d58f8d5c7dc3a2e275b7b154bb9cdea84a1ea306992b03d3a57467 |
|
MD5 | a0102c67edbbabaea3981b94001478d3 |
|
BLAKE2b-256 | 9b1decd58c84ad1fd54778f9ece09effd69915b37d62093c3a6ae5ac710e0e79 |
Hashes for pycryptodome-3.6.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32adfbbeb5281f846244b4cbdcd4b514494ab5a310c1edac669648187f38ff1a |
|
MD5 | 9585e84463f60bd3cf4faf1f3974cef2 |
|
BLAKE2b-256 | ce1be1026894581dac26e8127faf9680a4c2fb034050e4e100bfbd6dab068fc0 |
Hashes for pycryptodome-3.6.3-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cab4f34563a7930938fe61b5eec70ca310fa08ba1ab4c91e00243ff18e2642da |
|
MD5 | a78606bd161554f428f3c91057c761b5 |
|
BLAKE2b-256 | ef84c093e564c1d9d756db510cb43fa18939dd9affd956fd5ffa4ec540181bfa |
Hashes for pycryptodome-3.6.3-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ebad2277a705db9647438e71a2d6a8110af8447a5fd30aa0838c4c1673814b3 |
|
MD5 | 25d1ec4c5ce6ff9df4ff4f338f23dcca |
|
BLAKE2b-256 | e732371e05b07eb05526d49e660519e9ff723564e2eda0f5774e423eb7d1c8d5 |
Hashes for pycryptodome-3.6.3-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48367bccbcde0a81d5d9668fe6fc98245c61ed17f1e4c680d4ac36d611389d11 |
|
MD5 | 2e8aafb7c9b096dd30c6fab9eed7566c |
|
BLAKE2b-256 | e42e89259dfccb9e00432432a1f88b28ac7ff1af06f0fb00ce61a7216abd7e76 |
Hashes for pycryptodome-3.6.3-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b37184a0d104edb07a1b625ea0ceec6cb713b7c9c7d46b5be859e48950da8d37 |
|
MD5 | 4b1ec77c9ae6c0f2411902f5b122f2b7 |
|
BLAKE2b-256 | 228ef15b54bcabdf159f8a2f21b25de567ab93858ab1a73a32db36dc4adc98c5 |
Hashes for pycryptodome-3.6.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb189964ef6668bf06e95995b87e5b036ceb6b12eb2d44a0005328a1ae8455ea |
|
MD5 | 5467accbba3b6a0c721f1113d1480fac |
|
BLAKE2b-256 | 85f9006a05b471e393a771d2f438eb72f574f65300ed60b35611932e56075b37 |
Hashes for pycryptodome-3.6.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77cca22964e3858ddbb018de6a47734efc6478935edffe3c4ea105fab1165f39 |
|
MD5 | 243046e547aba3178a48817cafc0288b |
|
BLAKE2b-256 | 868349ae5e170542102a6e7811bc96f9ca0b3952e306fc4a27c5a887013cbeb4 |
Hashes for pycryptodome-3.6.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 052926732eb9879b2a598344a7533ebf6f56796c7eb0b142838057e806e1cfc9 |
|
MD5 | 9cf021ff8d1b2f46e119f18ea0a34189 |
|
BLAKE2b-256 | 8803614d86b713bbdf345a41e4942ebc0fc9f3a2ae35957bc7b972eb4e5480d2 |
Hashes for pycryptodome-3.6.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e4a78b8e276d728bda86c3d25e169bcdcc3a61d66de531a752f1e0a1440ff10 |
|
MD5 | dac3543c3be8e003c5c3d6a76d154a78 |
|
BLAKE2b-256 | c0b7957bb1b0bc6e4a8fc2dacc18047a5f3f71d5bc9e41f6ee4101b8aa6beac5 |
Hashes for pycryptodome-3.6.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 666c549ede7b187f1ceeb2d5cbea364398d6107776e48d71468982b9152631e5 |
|
MD5 | 680389dbfd588cf9954783687a896a5d |
|
BLAKE2b-256 | 21ab219356f933d84289de73d3cc2d4ee453ab1c793fb6b9fe0b49a1b56de6ad |
Hashes for pycryptodome-3.6.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5a845454ca3be418d88bcae30ee559d6c74a97f3eb8c94f151d5b69a81d4e97 |
|
MD5 | 39ef49d70efec67b57f25df773f06ba9 |
|
BLAKE2b-256 | 2c6279ec5a84058bb020b02da32ba1fa576c75d1c56d54012b075c30538109da |
Hashes for pycryptodome-3.6.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 257260fe2801746a3b804e38bee9bcaa8be3963f12df31135cffab1ebcaa0134 |
|
MD5 | f404ee48ac70979c47ff41dd30b91c92 |
|
BLAKE2b-256 | ae33fe7d28e0523377bbcc48685a2364eed57f3df6677870dcfc0b2773b845fe |