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.8.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09da99372fb69762e4b9690291176a166cc351793e2e1c9405d29ca291503aa8 |
|
MD5 | 571d6569f77f3c14d32fd8793c8a94d2 |
|
BLAKE2b-256 | 30f9b9dc137598a0e76ec233cc33df7f5507723fbe91dae7d370cfe448df3878 |
Hashes for pycryptodome-3.8.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d939d511b7dac29b2d936706786771ecb8256e43fade5cdb0e8bc58f02b86cf |
|
MD5 | 9bc1a47efb408373964ed516180372a4 |
|
BLAKE2b-256 | dce03b5789052e6e339619e505a29d657e82f11c9a525b413939413a05668983 |
Hashes for pycryptodome-3.8.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34091e9a6650c44e25339f22fc821396f19f152f65be2546edd823a093fb5a04 |
|
MD5 | 7b9205e1d79841efb4b4b453e71c1871 |
|
BLAKE2b-256 | 4b43b6df7cd1354cc03c80cb972d5930b1adc209c717e9141883ca9026314eda |
Hashes for pycryptodome-3.8.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6458dd7a10ae51f6fce56bdfc79bf6d3b54556237045d09e77fbda9d6d37864 |
|
MD5 | 45383f9dc6a7bbd172c17a4987800964 |
|
BLAKE2b-256 | ae57643c3d76889fb36e7dd3cbf8ce551c92e190e21389382a69978848b30d6b |
Hashes for pycryptodome-3.8.2-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9fb92e948128bce0239b87c6efcf2cb1c5a703d0b41dd6835211e6fafd1c5df |
|
MD5 | 6068f1ba5e205843950d21fd00383264 |
|
BLAKE2b-256 | b79474a003a7dfbffed6064679e9f3c87a7b7866c652dc3c647ca2a01822d7ca |
Hashes for pycryptodome-3.8.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33c1f3a380fd38ab4dd4372bef17e98002b360b52814bb1b077693b1bd06ec87 |
|
MD5 | a6f52276c11a38bee5f34726451b9f4b |
|
BLAKE2b-256 | 9acb8e60e63a298ff552874eeebffa6aa0400ce0f0191c15c103020ad1edcdf0 |
Hashes for pycryptodome-3.8.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28b86ec9fdb005a2a18e4862a3a7277046738825ee8dc89cda5657e75a396089 |
|
MD5 | 660af37fe8622f0089aa94f752d6b185 |
|
BLAKE2b-256 | e06a08f8b8750cc93278141f498ff458c85b846d16cc460a1a8468730dc8e688 |
Hashes for pycryptodome-3.8.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1c91c2fa942a71c98a7a1f462de6dbbe82f34b9267eb8131314d97bd13bf0d4 |
|
MD5 | 848ada67121e47da8fdd823bb90fc2f4 |
|
BLAKE2b-256 | 9f2ad4f6b8802cc9b428f285cad6ff486ecacc8d3ae7c8cdccaae26359ccac4e |
Hashes for pycryptodome-3.8.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31f78b67f97830d137f74813c0502a181a03b43a32ed124049bb20428176c307 |
|
MD5 | 7e6583938d28f62e7e3e2ff32594a7c5 |
|
BLAKE2b-256 | c7e34b709fb3079079fe71f096a8c93c5280066bd44b0f39ffdc01cd54ab6345 |
Hashes for pycryptodome-3.8.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 567fb73951ab6865a2eb1a0060b54be1e27302574f6c65879525bdf53fab49e1 |
|
MD5 | be50ebbfdb690d5eaaecb94a3941a3ff |
|
BLAKE2b-256 | 41fd1a49483a926102eefd7bfb0be4774ce5ad37de20a27ac97d1f80c1076b2f |
Hashes for pycryptodome-3.8.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0c5a576f3f7b7de3f86889cb47eb51b59dc11db9cf1e2a0f51eb4d988010ea4 |
|
MD5 | 94827545157f47335a8bf04a711e5475 |
|
BLAKE2b-256 | cf0c09573017464d9e32003d0922aa9e7127c51d2d796cfc119c8f8c4ee5ed42 |
Hashes for pycryptodome-3.8.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fbc5a93d52e4c51487f4648b00dc41700adb144d10fc567b05f852e76c243ad |
|
MD5 | c0d8fb3370a1f6f4ca562ec8184e97d4 |
|
BLAKE2b-256 | 4af7f0202c62b3b1814830d6deb2ea5def7f93edc88f024c452ce5d7ec023c53 |
Hashes for pycryptodome-3.8.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30d283939896fa4bacbdb9fa86e6fd51e9a5b953a511e210b38481f697f289f5 |
|
MD5 | b7fd9964ca040f60f4570c2127c3f1c5 |
|
BLAKE2b-256 | cc543bc038e4eab6026019e16cb278fc2f8d39cf0441013e74fd950131fbcc2a |
Hashes for pycryptodome-3.8.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cb94b8f9c915a5d2b273d612a25a8e5d67b49543f8eb6bcec0275ac46cda421 |
|
MD5 | cb6c9bcc56249a901ae11f463a89c25c |
|
BLAKE2b-256 | a77951d5ac987340df6c96f9d502c1321ae10a1a0d270dee2550697d42d42a9a |
Hashes for pycryptodome-3.8.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b0a0ccf33c7a6100c569667c888335a4aaf0d22218cb97b4963a65d70f6c343 |
|
MD5 | bb684b9be1c400afc5b639e0e8556259 |
|
BLAKE2b-256 | 377d8430ff68a2058d4f882d89c0dca4284563243262d65fa4f320ea2c0e69bc |
Hashes for pycryptodome-3.8.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc9560574a868cfa2ba781b7bb0b4685b08ea251697abfc49070ffc05e1cbee6 |
|
MD5 | 2ee8d469f79be53b27948223cacaba1e |
|
BLAKE2b-256 | 5bebfca9f7327e2db6486d16c03281e539835ee5d4b812de5c20e9140dc02d1c |
Hashes for pycryptodome-3.8.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71b93157f1ce93fc7cfff9359b76def2b4826a7ef7a7f95e070161368e7f584a |
|
MD5 | c1393eb9dd5bd9320b90fed1be393629 |
|
BLAKE2b-256 | 091dff4ae38ac7707ff1bca859d67ad2eb591383c026502b78c7f37424a57f70 |
Hashes for pycryptodome-3.8.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7d22c8d648aaa3a7ec785eda544402141eb78ac5ffbba4cbe2c3a1f52276870 |
|
MD5 | 885837e825f924c620cbf8c146907d34 |
|
BLAKE2b-256 | ac86f93356e9f64e71c4bb502b73454f06e2b397bd9a825f6b89a636562386ae |
Hashes for pycryptodome-3.8.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a585ea1722f9731e75881d5ffcc51d11c794d244ac57e7c2a9cbb8d5ac729302 |
|
MD5 | ac827998c6380c36225c9de136e22476 |
|
BLAKE2b-256 | 6d62a3fad5636c0802ef03c02bb865887916fec8b343000c36a509f109abbf9b |
Hashes for pycryptodome-3.8.2-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d790c0d4c0d5edcf5fbab4e2af7b03757e40c5ae8d217f0dfe9ddea37fe130f |
|
MD5 | 3890faf255615d4ffe04e386cfbe7041 |
|
BLAKE2b-256 | 113732b1a849ee350f4a7d4d069911462c6a229a513415299bd108ce85f001fd |
Hashes for pycryptodome-3.8.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2400ccfc049c3f24e65d4f02bb4208d86e408011019e455fab7f50d2b226c9 |
|
MD5 | c7d81e85ef39b19b07bc2f5a2b956a03 |
|
BLAKE2b-256 | 054136b91c77204f615b640ffd61309b668cec6cbb3a1aff42540ba08c275bbf |
Hashes for pycryptodome-3.8.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec936361ad78aa95382c313df95777795b8185aac5dd3ec5463363ea94b556fc |
|
MD5 | 01394b9adf8c5437dfc9d4b935f3be4e |
|
BLAKE2b-256 | d3b57c21b0167a0dabb3b9b5af968551f7565e6c0094b2f91bd128cf6b42d6c0 |
Hashes for pycryptodome-3.8.2-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02af9b284f5c9a55f06f5e4532c16c9b7bd958e293e93969934d864ef7bd87ee |
|
MD5 | a8a5e46c8a69de8f51f3bbc4eb91eabd |
|
BLAKE2b-256 | 49f246de3c50b52969b779d8f22d10de47ca2b8cc4d04be83f4726bd922b0a3c |
Hashes for pycryptodome-3.8.2-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0b6b4ca1c53e7d6ca9f2720919f63837f05e7a5f92912a2bc29bfd03ed3b54f |
|
MD5 | 5a8a23776a430e53cd7daba0454d0dde |
|
BLAKE2b-256 | 9b5f7e3a6479c49c70efbcb93c3bd33480d9b1b27bd46582455e6d66c7d3b6aa |
Hashes for pycryptodome-3.8.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2081dd6dce6b21bf3596427edaedd4f2561dce616893b162ed2c674f3a3ca70a |
|
MD5 | ab1c3cb472e86d18a7f5288e2817add7 |
|
BLAKE2b-256 | 44a51d2a2968b04509aeda5a73912ca4f9220f1d7495fc6192dbeba0c9367ea6 |
Hashes for pycryptodome-3.8.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f24906153dca16528cf5515b1afa9ef635423d5a654904e861765f88ca667b6 |
|
MD5 | c603a7b033332b4481198a0c5ba53240 |
|
BLAKE2b-256 | 518b1e71fc19d485ace99d28476856146ee4e681190a14b123aeac34c8fa3e82 |
Hashes for pycryptodome-3.8.2-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0281dc6a65a4d0d9e439f54e0ad5faf27bfdc2ebe9ead36912bac74a0920fa2e |
|
MD5 | 850a7b57b4b0360393305669a6232423 |
|
BLAKE2b-256 | 725c23d88d4abc189ea847c2ebf69dc4d610e1a2bd3a611f29fd3ac1fd1e2e71 |