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.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 887d08beca6368d3d70dc75126607ad76317a9fd07fe61323d8c3cb42add12b6 |
|
MD5 | 793b353aacbc45079c63190151b38db5 |
|
BLAKE2b-256 | d80ca069fcca86962e61bfe4672ee0dd0ceeca9a9c84041fd79c318aad0f7915 |
Hashes for pycryptodome-3.9.6-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e486c5b7228e864665fc479e9f596b2547b5fe29c6f5c8ed3807784d06faed7 |
|
MD5 | 5167339bad7d1ea9d88c75aa0001c24e |
|
BLAKE2b-256 | d312148242213240aea19aceb944414f165f35c98963fd27e27dab961ed07ecf |
Hashes for pycryptodome-3.9.6-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d516df693c195b8da3795e381429bd420e87081b7e6c2871c62c9897c812cda |
|
MD5 | 4803f775437411d5c5da75d60ccd6402 |
|
BLAKE2b-256 | a6d9a920df0deb7921c34c58ecaa35ba8d2144b6b0a4f8c1a39c0fdcb8377051 |
Hashes for pycryptodome-3.9.6-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 238d8b6dd27bd1a04816a68aa90a739e6dd23b192fcd83b50f9360958bff192a |
|
MD5 | d87b63dfec20185ec4ff7ff664ac779d |
|
BLAKE2b-256 | 72a8ef1bbdd928f98a6861b5b2b8c2e453688c8aa85516662c62a584f4bc79fa |
Hashes for pycryptodome-3.9.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de61091dd68326b600422cf731eb4810c4c6363f18a65bccd6061784b7454f5b |
|
MD5 | f8b93d7f0163913a824639b3f88c6e22 |
|
BLAKE2b-256 | 27c2ac35c2c8040f6c71f7f1292fd3fa389e0e23ef3d6cd75452952019c04bad |
Hashes for pycryptodome-3.9.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9927aa8a8cb4af681279b6f28a1dcb14e0eb556c1aea8413a1e27608a8516e0c |
|
MD5 | 795671428d5df007129a03c6a35ca6f9 |
|
BLAKE2b-256 | fa30afa28bbeece2580816a9a28cbb5e2351370deeee3d9911876ae4809b6493 |
Hashes for pycryptodome-3.9.6-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05b4d865710f9a6378d3ada28195ff78e52642d3ecffe6fa9d379d870b9bf29d |
|
MD5 | 4aa2b47890bf4a64cd7ab424fa0e96c8 |
|
BLAKE2b-256 | 12c705df74dd6c5179d15ce05ffad8aee6a4cc5e294d89f88dada5fe8a3234c0 |
Hashes for pycryptodome-3.9.6-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 012ca77c2105600e3c6aef43188101ac1d95052c633a4ae8fbebffab20c25f8a |
|
MD5 | aac41400123dc51abf5a846f19057d0b |
|
BLAKE2b-256 | 145491437e0a81edb36bd64554dcd3c6f4f098a82f08d17a358ba8f07a8a2374 |
Hashes for pycryptodome-3.9.6-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da2d581da279bc7408d38e16ff77754f5448c4352f2acfe530a5d14d8fc6934a |
|
MD5 | b96d3307e4862021bbd34ed88fff8ce6 |
|
BLAKE2b-256 | 148217123b49eb3360d28aa652bc9dfbd90d651fe8526d6babafc7aebbd18b6e |
Hashes for pycryptodome-3.9.6-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07daddb98f98f771ba027f8f835bdb675aeb84effe41ed5221f520b267429354 |
|
MD5 | e45d21284618cdf0f8ecc3c9ab991fc0 |
|
BLAKE2b-256 | c21c7601f35b948dc492183fa2c4b8a11ee988d1d7eae3895330bdd759cc8e0b |
Hashes for pycryptodome-3.9.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8e480f65ac7105cbc288eec2417dc61eaac6ed6e75595aa15b8c7c77c53a68b |
|
MD5 | 1bfd3a58e34f2fb6e1d1169ad729d63c |
|
BLAKE2b-256 | 85b3e1ce9446235a7e01f436fbf13cfe9be40406de38533c908ed0b0a610c45d |
Hashes for pycryptodome-3.9.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79320f1fc5c9ca682869087c565bb29ca6f334692e940d7365771e9a94382e12 |
|
MD5 | d14a52a7a0d3c2c430e02cd20fc0935b |
|
BLAKE2b-256 | 952e4f6a69cedd69231c57177ef4c8265aecf0fd46ea2adda586952c6370cd6e |
Hashes for pycryptodome-3.9.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9948c2d5c5c0ee45ed44cee0e2eba2ce60a03be006ed3074521f3da3be162e72 |
|
MD5 | 9f9802d9487db84101c6f5e8e8245d79 |
|
BLAKE2b-256 | 54e472132c31a4cedc58848615502c06cedcce1e1ff703b4c506a7171f005a75 |
Hashes for pycryptodome-3.9.6-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcff8c9d88d58880f7eda2139c7c444552a38f98a9e77ba5970b6e78f54ac358 |
|
MD5 | cf71b65ca7cfcd81ee6e2acdf6751e7b |
|
BLAKE2b-256 | 5969974b2b25dfba830a4c561e12c45554b32c620d179dd73adf7ef0665c56ed |
Hashes for pycryptodome-3.9.6-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09bf05a489fe10f9280a5e0163f195e7b9630cafb15f7d72fb9c8f5eb2afa84f |
|
MD5 | d71c2b39d54298f57140e2c93dbf9d96 |
|
BLAKE2b-256 | f45fe13913cafc07f9aa9625a9615d6cb757499d30ee7e9457beb8f83e2472f4 |
Hashes for pycryptodome-3.9.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1259b8ca49662b8a941177357f08147d858595c0042e63ff81e9628e925b5c9d |
|
MD5 | 9fd260cbb7d35a98bc3d1f52df723d6e |
|
BLAKE2b-256 | 93eac059811866ef879eed4b5e84d6bd2356fc3f69b56d1a7d11fc8626c18264 |
Hashes for pycryptodome-3.9.6-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdb0ad83a5d6bac986a37fcb7562bcbef0aabae8ea19505bab5cf83c4d18af12 |
|
MD5 | a7381a5eae80f26ea7f089fd01cfc1c7 |
|
BLAKE2b-256 | 835db7ab1e9bc2698fb2a56beb13ba464b7fa8b5b76099e508ff2c17ec266999 |
Hashes for pycryptodome-3.9.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3204006869ab037604b1d9f045c4e84882ddd365e4ee8caa5eb1ff47a59188e |
|
MD5 | 559119c0c51da18171663db713818382 |
|
BLAKE2b-256 | 9b3ef938cbc4fde29844cd2a8078412f029bdaa45c53466e03346bae360c9315 |
Hashes for pycryptodome-3.9.6-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c41b7e10b72cef00cd63410f31fe50e72dc3a40eafbd146e288384fbe4208064 |
|
MD5 | 44f5fe94869cc8d3fc7f652b52b2ad80 |
|
BLAKE2b-256 | a960a0ac4e72affefa7639f4d57250ddcbdc7ef3be0d8ca4d005d62bfe04abbf |
Hashes for pycryptodome-3.9.6-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5817c0b3c263025d851da96b90cbc7e95348008f88b990e90d10683dba376666 |
|
MD5 | e8bdde00fae59408bfd4287790d2bbbd |
|
BLAKE2b-256 | 8df375120125a1fdb6929b1dbd135dd005a5c2767786e05871dfca98f466a624 |
Hashes for pycryptodome-3.9.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a8d5f2dbb4bbe830ace54286b829bfa529f0853bedaab6225fcb2e6d1f7e356 |
|
MD5 | 9cd7395a2be2cc9eddec5137877ca206 |
|
BLAKE2b-256 | 788f0bdf6c98b8498c2289b91a2305388c08a79f66e5aa2d06131134c9f69eb7 |
Hashes for pycryptodome-3.9.6-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9163fec630495c10c767991e3f8dab32f4427bfb2dfeaa59bb28fe3e52ba66f2 |
|
MD5 | eab2a03be4be788f8c4c2e1c3d58ba0b |
|
BLAKE2b-256 | 0a04944c14809096cab22aabf6a24bb1a789a431f8c39aa1e886bc54a3ff686a |
Hashes for pycryptodome-3.9.6-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec7d39589f9cfc2a8b83b1d2fc673441757c99d43283e97b2dd46e0e23730db8 |
|
MD5 | d42b91183e96141f89f029987686970d |
|
BLAKE2b-256 | aec4ed3b95f99661e84950459d36101ea9d88d85bb1c8485ef2a4135db16ecf7 |
Hashes for pycryptodome-3.9.6-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4d2174e168d0eabd1fffaf88b4f62c2b6f30a67b8816f31024b8e48be3e2d75 |
|
MD5 | d80d40912ef1ccfee31fc98fde296480 |
|
BLAKE2b-256 | a5f7a7f38d12248cb160028ab1b35fee87ae11c21e26dba4f00dfcaa63c731c8 |
Hashes for pycryptodome-3.9.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39e5ca2f66d1eac7abcba5ce1a03370d123dc6085620f1cd532dfee27e650178 |
|
MD5 | 4e7b1b605aa523e570f0fed83a5bfbe7 |
|
BLAKE2b-256 | ffaa32565a8f90b134970bcf413fb20a34e1e472b9cdca5df84ca26917e2a7d1 |
Hashes for pycryptodome-3.9.6-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a719bd708207fa219fcbf4c8ebbcbc52846045f78179d00445b429fdabdbc1c4 |
|
MD5 | f580bcdc2b95f8a880ea5f6b2ac436c4 |
|
BLAKE2b-256 | 376a9bd89d377267e61561bd10333ee904cc66e76577d34993a6d6c92e4f94e5 |
Hashes for pycryptodome-3.9.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a57daef18a2022a5e4b6f7376c9ddd0c2d946e4b1f1e59b837f5bf295be7380 |
|
MD5 | 588e3665a02a01abc5b17452ed84aa6e |
|
BLAKE2b-256 | 9e1255a71d5d24798be10732c020076383d3765d0942b12b5521f13dfad7bd2d |
Hashes for pycryptodome-3.9.6-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95d324e603c5cec5d89e8595236bbf59ade5fe3a72d100ce61eebb323d598750 |
|
MD5 | 4043f3dc282ea1062d76d7631a35093a |
|
BLAKE2b-256 | 6d768135193ed3f310cee91eb1971c4f2e04ac5964b01bd580b1b22da59a2f39 |
Hashes for pycryptodome-3.9.6-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5029c46b0d41dfb763c3981c0af68eab029f06fe2b94f2299112fc18cf9e8d6d |
|
MD5 | 28d90e05772aa6be86039f130e818ba5 |
|
BLAKE2b-256 | 74cd65f28c92a2bb520b8f8c92b2c307a43a0d7d877602bd373062a957a2221b |