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 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.7.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de3e9bb4d356a8bc72f848b7691ec760c8abfbbf368fcd7642240c3e6126e740 |
|
MD5 | 33fe7d6925ca5a89d57043a2e0919d05 |
|
BLAKE2b-256 | fc99ed80fd36eebe26914bd8aae4ac70fcef2d4ad94453981c171fe791629146 |
Hashes for pycryptodome-3.7.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8365fbf5254f086e2ad9f589f026506b04e7cf7819a851c91a864bb2d7b35369 |
|
MD5 | 7a8a94a00388aacd862e3e4cea4dbb1f |
|
BLAKE2b-256 | a815bc8431afbf72bbead395b3ec0759d78cfd0bbbe6a95752e615220a4e2017 |
Hashes for pycryptodome-3.7.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d0d94c09d032538a7b33eeb52eca21eb66db6f00689000066baf307cb7091c2 |
|
MD5 | d5416a63bd01fa4cc36cfb2425e4a6d9 |
|
BLAKE2b-256 | f6b66cdf0f2e63302def5f5ed206e663daa0c7dc6b853618327c1909550d8617 |
Hashes for pycryptodome-3.7.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a0ad14c046c7fe4f60d597f15fd58af41d25f143ff5c8742df3bd80b9008c7d |
|
MD5 | 760f63f778dd0b73872aa19967ae1047 |
|
BLAKE2b-256 | 40ba71ae76012afe319ce39d0ee38f0429ef590682e3cc07702be005f979bb03 |
Hashes for pycryptodome-3.7.2-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f09ea14afb0b811cdfdaf2de01ad1a7f8c46faee81291d34044eff409b713cee |
|
MD5 | 1dc91293495fa1b710654cabadc69f52 |
|
BLAKE2b-256 | b32ec1a4c6f3d15e3b8ce11622653f03ec5e9b7552f1b9a49601fe9045ba8f53 |
Hashes for pycryptodome-3.7.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a378c1aaddc8874a71205c4eee3aaddda99afbc62f213e065ac06df0686d42dc |
|
MD5 | c8fd49ff097a8db74c42608c819da1c3 |
|
BLAKE2b-256 | 4d434cfb65f8e0df2938518b964dbaee33647dc1cf20e43afe5269f014666c37 |
Hashes for pycryptodome-3.7.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6650d66a513736d61bca9ca2b1c09deb72bf2dcdf47151507ec0c05595a5b0aa |
|
MD5 | 16fc2e35e1d6491e1bf6617daec46140 |
|
BLAKE2b-256 | 5386a8271371e1a4c9553f5210b397d38f6d3d25ff2b99b5b683294910f2c150 |
Hashes for pycryptodome-3.7.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf60769ef3fd33023cb10ab277903f84f07819465f463cbdae66f732054f90dc |
|
MD5 | 2df3226b3e0ffb49c086d796fee033c5 |
|
BLAKE2b-256 | abbc589fbae48c0969719f28b862d979f8e9d4d1e08bb7f68ad7a495b1ba2d54 |
Hashes for pycryptodome-3.7.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b295dc48de69a8055c73d5d49b1355c9479ffeeff72d0c746fb25e205189fe1 |
|
MD5 | be4b26bc1fae586b505943c3fbdc971e |
|
BLAKE2b-256 | d2ef088f47c8e24ce2d98e5076ba73b930338d657dcbee391d7969fe8b8a3d6e |
Hashes for pycryptodome-3.7.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e6ab7478243f56fb51a89b8946fbd6853e924cd2aba3c22513bc508d3807a27 |
|
MD5 | 7ecff92ef7740fbe4a4fdfe6e14c0793 |
|
BLAKE2b-256 | 08b4b2a59e93dc35b8d1e5f81dbadfd9c6fc33fdad6066bc51529a06be24c366 |
Hashes for pycryptodome-3.7.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c7fe7b081f257d51138369ce3f8675cbae6d2b94f19b5abbf127b2b61db6b99 |
|
MD5 | fadf4136f76c377480d38b477e025cf0 |
|
BLAKE2b-256 | 4b128bd832b216332ef432076a5eceda05f0899c6ec8af581b06a688266ee17e |
Hashes for pycryptodome-3.7.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 500d932db4c418932510237911fb36f85d2452bd444bd0bee96c4a05223a0c81 |
|
MD5 | a7cb84602172d766f5c8b9cb56b3a95f |
|
BLAKE2b-256 | 03236a2c1cf78d357cb930f863a1ae7090d2fe18be90822c0b9d70328dd84854 |
Hashes for pycryptodome-3.7.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 148349c2dfbe80c3dfe598c60147f7875ae9a1dc91beb79c15eade734262a1ab |
|
MD5 | 3f5061777fc2b6c1c58d124f212632a1 |
|
BLAKE2b-256 | 6f392de480b94179c15f947922904b1f24472b3fdefd35557a0305da80bd0ca8 |
Hashes for pycryptodome-3.7.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9048ef02431b19d823bd758dcd30bef6b29f0a92e49efc3dbec30c8b96e77570 |
|
MD5 | 2f11aa16804ad2f7ef995ad2669c622c |
|
BLAKE2b-256 | a84eaac5e2e77e3861f8ebc117299f5960a442e3c99b04424f8803768f97d107 |
Hashes for pycryptodome-3.7.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4617d3925bdd77e6930d2d3d343324062a3ebd87652808158f8d6f4be4e2161c |
|
MD5 | b14788e83dab495c5dab4a036f8280b4 |
|
BLAKE2b-256 | 7f8db13a96e91abe9beef5b4e25d78dc6b4583421a8bcee564128ed3f344745c |
Hashes for pycryptodome-3.7.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c360b9f8b01e704ca70404001cf298505df9b2158a0c29021361ddf7f73117f |
|
MD5 | 8fd63de95ce2d5780a1244dd2a828a3a |
|
BLAKE2b-256 | 67f942fb0384a71aa5d52720c61fbfc9930ad060dad34c432e69a64554c00328 |
Hashes for pycryptodome-3.7.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3210d8ee57f92055b7c6c393e8770b331dd125b371007dcbcddca5dfc7d8c8ce |
|
MD5 | 253aa76028ab0a38d6310b8e2084935d |
|
BLAKE2b-256 | 1f78800e5f509980d159c674899754381c75960b2798d618402456a3df109389 |
Hashes for pycryptodome-3.7.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08de8132a11fe3df5a60ffc9292eabd713b77250650190bb5beeb01ef2593e51 |
|
MD5 | 067c5cfe333256b9d9607b30a2def5ff |
|
BLAKE2b-256 | 707cdb47fb9a3cc8d25eafc953286a03240dfed28ca060f0a651855dd1c36a66 |
Hashes for pycryptodome-3.7.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 249d4301eb1e41dce29550a6c8693d4a7d23a06cb2d8afb51f1f42680dd00de1 |
|
MD5 | d67bdc3893e3e26098dc12ee3d1e2fb3 |
|
BLAKE2b-256 | 532a1946406aa885d4519fa1cf8ca49f415c81527fd5eda439eb01b4b9e00aff |
Hashes for pycryptodome-3.7.2-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d8d9dd7ba37bb84773160ebb65ad7794517723a4a549367227bb1325ebb8925 |
|
MD5 | 673c390f18a1334b5b8cf405233ef42a |
|
BLAKE2b-256 | 4cfb96df947700f09d80930b004b4015a7f019d45aace8d80442a5e2e2acf7c1 |
Hashes for pycryptodome-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 331e93fdddf8e2779e85cc2e0cbb2bb173a9ebcfbd0eb77390f875e5db0f9940 |
|
MD5 | b8f429ae69c2c1a32f6c35460cc8fa62 |
|
BLAKE2b-256 | a50cfaf3704e185e54461fa0661f84200f77ef544bf88f74878f01b26ecbfe14 |
Hashes for pycryptodome-3.7.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08dcfd52a6784c9ca6b8d098301326ec86a33b94e44759dac031ba71407a1a2e |
|
MD5 | 750ea91879d0ead4f157cf85455f0bdb |
|
BLAKE2b-256 | dd66807c14fb0f924312caeff09941d2e04640efe9d6b7ead5d766fcb3fba12e |
Hashes for pycryptodome-3.7.2-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 185c091af54f90d038efc7eeca586161e603bdcbcbaaef2bc7454147f66669d2 |
|
MD5 | 9ba21ae9df91384db746cc80a3b331de |
|
BLAKE2b-256 | 6e3c2d40869e809c6b96c8c5ea4319366e617e9b133d032531de728e710c1972 |
Hashes for pycryptodome-3.7.2-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e39b956d8dfa3377b8cafc90649fa715d5a17c12f7e7f117920664eddc410803 |
|
MD5 | c510ea38de9d44e027cef01fbc344a77 |
|
BLAKE2b-256 | f50f2748436354575d07577caf1034f4c355dec8178181e0b026c975614c678b |
Hashes for pycryptodome-3.7.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0377ce5ce4df524394e0745c807932895bb8f25d791ab24b47687d2e049d691 |
|
MD5 | b5f2546bc2484dce1c4dfdc5fb798a92 |
|
BLAKE2b-256 | 74357fe997f02320da478c14415c634eecc8e3eff42fa6415363e85ecdbb5d62 |
Hashes for pycryptodome-3.7.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbfa5f741ba3dc8e07d5beb7c8cacce629f47a15bb31d4625cec3b8b171c489d |
|
MD5 | d7b366204ffae944b286e2ce1d39f646 |
|
BLAKE2b-256 | 6d5d62cc0e2f5907f59780637fd192858827a9ed34f90e26477479a95c18d647 |
Hashes for pycryptodome-3.7.2-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56857d04dadf51dfcc8223bea4127d739704c11a5aef365d373f8999a34d3c33 |
|
MD5 | f74a319066f23f2458d1e9bbea756b6f |
|
BLAKE2b-256 | 305e798928f350bd248630713fb532ee1152ef1099f92e08f090604ddf79bc59 |