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 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.9.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7725643de3c884a9945a086670787dce637037f32c5c2df7fd602bd5967f3486 |
|
MD5 | 04f7a89a30915aa1a27fc9bbecf1b81d |
|
BLAKE2b-256 | cb2141df41bb46dc8a79b93f91531ffe51ce6d4d2a9975e2060b05a482b437af |
Hashes for pycryptodome-3.9.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2776255d5c748782f095ec422d42da2eadd8392ac9de7da23db4aed4231272bd |
|
MD5 | 182f08381d091bf3bc644d7861613b11 |
|
BLAKE2b-256 | 0987027f05c1ee50b4efe99e71b5dbb71d8db63225a9dd702ee48df066025df3 |
Hashes for pycryptodome-3.9.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 962043051afa7a5ab071b0d8996dc00e564327a18566d3e574a39cb6e097b462 |
|
MD5 | ef3aa0633bb21d979211701a40679c1b |
|
BLAKE2b-256 | 0a2da5b4fcdf223645911d5384f4ba6d64cd4f3de214b9958e6833e48a2c5a61 |
Hashes for pycryptodome-3.9.1-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c639f09e8ce8ad5af9884233f952ade4b73a11b7d41d3b9bb7d4e64d9e1df164 |
|
MD5 | 2a9881c08a35fdcdb360564fcb3b253c |
|
BLAKE2b-256 | 18a55f30ac07ec6f3d88c3b495563b9f1918ac8296defef63878e3dcc53365be |
Hashes for pycryptodome-3.9.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c501e80960d12328d49e1d409daf426f29364a37c602f257c99509999654650 |
|
MD5 | 3deacc6b3f8d8673d638d7469f3a1c12 |
|
BLAKE2b-256 | 1a1363f6595f6708c7255e61c1b3fb80be7291cc6113c4d78982820802b8a4fb |
Hashes for pycryptodome-3.9.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9512638bfef8ffc94c62751965a4733c3792104dc84771ba54ce0f80f49134df |
|
MD5 | b55466f6c9b7477cb4a6e6ba985c093e |
|
BLAKE2b-256 | 0de86cb65d9437e82773c45505940f232ca2a78ded79a3fd5b9e9fe445ee881f |
Hashes for pycryptodome-3.9.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 872191a02a0c2a3b98dc75c62b32912b220a8ae5ff6ac9e39868f903f55dd6a4 |
|
MD5 | a03faeed8f4644affdfd8817edffcde9 |
|
BLAKE2b-256 | 4b8b60f092d66fffc3e3f9694bc68e58b0e94d71e6e322befa61cd3cee18c6d5 |
Hashes for pycryptodome-3.9.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5261d22bc3a54db26f11dabcda14bbaab72080977e083d795b4b1d1b510c774 |
|
MD5 | 2b9ad2db0a561939a6a0848a4542de1e |
|
BLAKE2b-256 | 8d53ac5e5f302cb0fdfebb710ef5ac869d3cb52d7bcd516f7eb57e5ca0f9e99d |
Hashes for pycryptodome-3.9.1-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a26819f693cf5fc0a2373a3e4b91c38e359cad9f00020a885b667c77f28738d5 |
|
MD5 | 9eb94c480ad8a04bb453f5937e313fdc |
|
BLAKE2b-256 | ba70a1dbdda59273076cd52b569793d7a952d542f6ee98ff07c7adfd8f428e9d |
Hashes for pycryptodome-3.9.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de411a64d4105d4424441833bd25943208e58c846abf981bba5bbeeba88a49c3 |
|
MD5 | b56427f7baae1578b790860eae52f5a8 |
|
BLAKE2b-256 | 9fe04482fc0fe218af2a0c70f2626751e7cddc09ce4bc09ab3404c806ff747de |
Hashes for pycryptodome-3.9.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bed297f75ba19cefe2d10beb4959f4f8cb62c2560a3998ad87479485098ee939 |
|
MD5 | 26f5e46de397938003f1c95cfcf076a7 |
|
BLAKE2b-256 | 3b966fb5745e9796b115396380389f909978f3ea2665c91ab3388ac9618089c8 |
Hashes for pycryptodome-3.9.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62beb75f0688f406946312bfef8923d8ab23f5b8013acded931413625299d317 |
|
MD5 | 70f54b00bbadd2dc4d5dfa8152100618 |
|
BLAKE2b-256 | 41431598eb29a97cfbeb370f09936c64add9109a764acf30fd3ff876b5d3f8ed |
Hashes for pycryptodome-3.9.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0aa49f3fa110f8dc090bad1671a768cc17d3d3bd01566641ffc0d10d0fec8d49 |
|
MD5 | af3f5d0bbfd24c9e88cb344e019c4f28 |
|
BLAKE2b-256 | 33eb635a1af2716b980844ff7ca2f65f23d57efb7a05c9ee48c003ab4d38c4c2 |
Hashes for pycryptodome-3.9.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7bc308be67288af1cd44668d59e36356f0ce518337899079ddb0235bd55db79 |
|
MD5 | 3419ce493b55afea2d036bb0ef921fa6 |
|
BLAKE2b-256 | f370228932ca8ea926a3611422f7f69a3d2ec62c496718b51bd174535a437c7d |
Hashes for pycryptodome-3.9.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbafe9b01b717e0bfbc83cd740ff5bf5cdd3f208815be470ea203942b899bbdf |
|
MD5 | abac90972e6231426fea32c2e757b02d |
|
BLAKE2b-256 | f5415251acdd18d8a24f09f9e7f0db09ce83fbc30719276bfa8ecb87b0872dfd |
Hashes for pycryptodome-3.9.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e9c8c270cd3f8c73b53139f0708f257189a00bbc898be6d3f03995e5f7edc2 |
|
MD5 | e322d0378240a1e7c57533d10da140db |
|
BLAKE2b-256 | 1910a22fa02ee95daf3ad62ad78a2dbd31f195ac4917bedf35df0c6a44194ea6 |
Hashes for pycryptodome-3.9.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5aca5125a46e458b308b5571ce8fe36d2229f161aa7db27b3ecacded70c6aa8b |
|
MD5 | 7f0611eeaa8e5a4b90e367a414ea31a0 |
|
BLAKE2b-256 | 8758f37fa1a0ed26b1ce47eaae6ea1036944d4b6907f244da1ad7ccca98c8e83 |
Hashes for pycryptodome-3.9.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17eb9bd5d30a71b0c8a832e3e9cd2b7723f99907c38dc5dd23e59e8c368a70e2 |
|
MD5 | 37b40371a9653e95f58b653f25e0c983 |
|
BLAKE2b-256 | 35f1dd185d88b1bc837f377a017e3b6a894cb0154e73dc8475b1fe860e550b47 |
Hashes for pycryptodome-3.9.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d95fafa899abb9f82e55ff43f423e100784312b43932514f2c05d41cbb20323e |
|
MD5 | 959d1a34b4f0218d6de69747ccad7e00 |
|
BLAKE2b-256 | 5c220af9719c1ccd36c0f9080fcda76efa0657e0952a93cc7cf45526e9a5d1cd |
Hashes for pycryptodome-3.9.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aa0d30326dcdef24c632d5c03b8e4d379c6ae0645082b27dd69ea816bb97ecb |
|
MD5 | 68025991afc7ef879ef1b603e73e117c |
|
BLAKE2b-256 | 2f85cd2da87297bfb8c178b81a5fa279f87e11e4d963c445ca8a4e414d42711a |
Hashes for pycryptodome-3.9.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c7769bdadcc4809508e71997008912cc6d94fd7b5b1f3ef121683ebcac71d81 |
|
MD5 | d570ae73ee04adf37fe37a54dd901ec0 |
|
BLAKE2b-256 | 86bbb4e91f145bda49fa9f3174b2234de1244c113ed962ac115084bf5b09a41b |
Hashes for pycryptodome-3.9.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ffd4f0bfb5949dfa0e5cedef836364f18da0deb2fba04671607fb3b59b29112 |
|
MD5 | 9f27ae0acc3d582319b805ba70fb78a7 |
|
BLAKE2b-256 | 10361ca824376312e80909ec056f2ccec8da096dac3907e90bf1b84a148fc93d |
Hashes for pycryptodome-3.9.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d81111e3da7fc9eee825ba7d8a68b3c1464f41110ef98a7280e0c7fb82c91e73 |
|
MD5 | ca812fe0cbe37177218c4df5b2626c9c |
|
BLAKE2b-256 | 3b9a3128c230c587281135544bb9da55ca982e28a6f8818061cde1870c57970c |
Hashes for pycryptodome-3.9.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3efc575a53511c48361d933e12e07c2eb940db1afda0995285176c372ab7352 |
|
MD5 | ff2450c7b6071c514d47dfca7d076878 |
|
BLAKE2b-256 | dffb6ea727f3f6b4dc7df49914f7894a73a32b5ae09f7d7f4bc40a38ebba6376 |
Hashes for pycryptodome-3.9.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ababd6685b9d94729a851a0615482156afdacbeaabeea60f67961db0e975b1af |
|
MD5 | 3518602767850b9af32ba3b962fa3069 |
|
BLAKE2b-256 | 8551bf4166e97264da7b927596763d09a7e1ca38731640b7fa919893c38d129b |
Hashes for pycryptodome-3.9.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fafd3c4fb76c6992f34bf2d074f582f388e3b8062b8ba5d65b020634cc221e6 |
|
MD5 | c0e09bc85401db602019f54292514da0 |
|
BLAKE2b-256 | 1a058c260ba86c5449f917f07ddeef52e8200c23ddb44e61e9ac0af8f458185e |
Hashes for pycryptodome-3.9.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b74173b13c221ee96b608212b9adc2c459a73d3632f04490df42e4f07e7041e6 |
|
MD5 | adfe04279904b3d8490e39304543bd93 |
|
BLAKE2b-256 | 80671d872039c22850c09e036594d9054f5da9081470eac26d088d3ab1e32dbb |
Hashes for pycryptodome-3.9.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e02c7b3d05b88ff1a236e49a252b2bf8444d3a1d04a056784af766c0909eba36 |
|
MD5 | 54d2dc505087a9b94e5a78706c2ea29c |
|
BLAKE2b-256 | ba5115277502bda3ca5b7bde909d123bf57095840fc8c0da59484753f3c513a0 |
Hashes for pycryptodome-3.9.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9db72b18b30902a83fa57b0d7dae4ce24f85186695e3bea0d423f1ec7c5b3fbe |
|
MD5 | 50c6a7d94fe1171d17d75fb9d71cf81c |
|
BLAKE2b-256 | 97929f84ed3d980d6c1947fefce45e81dc7c1fb245d0a9ce1ad49c0f412990a2 |
Hashes for pycryptodome-3.9.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cca152dcebc318833ba70499190ce17ee81b525404e2a7548c77f52b439306a7 |
|
MD5 | 9250037894173a335435e5d21d408ae8 |
|
BLAKE2b-256 | fe76c6ef70b0af086b4d20b50f253a8f1807190c47a48f28468f88aba6b716e9 |
Hashes for pycryptodome-3.9.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e8c97a38dac6dafd180b4696a522b1581dd1a8e0ea60763458be547bac97361 |
|
MD5 | 47ba9bce91c5961eff0d15faffd875ee |
|
BLAKE2b-256 | 64dba5b1c30d5b5cae5992c6091e07b2bc6bb8035b90acdad90c7c41a353449b |