Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.7, Python 3.5 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.12.0-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d4264039a2087977f50072aaff2346d1c1c101cb359f9444cf92e3d1f42b4cd |
|
MD5 | f5a3d4a96efa1a3121a92ed7aedb4fd8 |
|
BLAKE2b-256 | 28c83c226dd7ae5f3cb83ef02dee2158915d74b11b4a73b2b8ec7b86407a85b6 |
Hashes for pycryptodome-3.12.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ea2f6674c803602a7c0437fccdc2ea036707e60456974fe26ca263bd501ec45 |
|
MD5 | 13a74ad5b2822b052743821c31ba59c2 |
|
BLAKE2b-256 | be8c686027177f0bf040bb158b7a492f1e6fb33c6ef2944c26559e644e6a4ecc |
Hashes for pycryptodome-3.12.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8083de50f6dec56c3c6f270fb193590999583a1b27c9c75bc0b5cac22d438cc |
|
MD5 | dff204c245e126b4fdda3430e72ce99a |
|
BLAKE2b-256 | 1a523cedcb64d95a4a8a80baaf08c95a67c667af7bc7ef13641bfa208aa99676 |
Hashes for pycryptodome-3.12.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d845c587ceb82ac7cbac7d0bf8c62a1a0fe7190b028b322da5ca65f6e5a18b9e |
|
MD5 | 5eea248a3d3b1a4d724a9d75b7901a18 |
|
BLAKE2b-256 | 664d768fb2f57a0b27cd99000cf4b3f0f6e16bd809de31cc49b8b5f070e9e2aa |
Hashes for pycryptodome-3.12.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f699360ae285fcae9c8f53ca6acf33796025a82bb0ccd7c1c551b04c1726def3 |
|
MD5 | 361d26a2e26969487b4fbec5bed486b4 |
|
BLAKE2b-256 | b58385b62c8194150b8a280519197f937da556850afe53519347688d384ce4c6 |
Hashes for pycryptodome-3.12.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aceb1d217c3a025fb963849071446cf3aca1353282fe1c3cb7bd7339a4d47947 |
|
MD5 | e2e14330624e8ef8264ca48afe9f4bb8 |
|
BLAKE2b-256 | bf29c767fa6fea568b4486cf5997526aea766423f34348e03c28323fc1f48c9e |
Hashes for pycryptodome-3.12.0-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6e1bcd9d5855f1a3c0f8d585f44c81b08f39a02754007f374fb8db9605ba29c |
|
MD5 | 1d121b278407a25a2b3475b17566cb89 |
|
BLAKE2b-256 | 11751d15d2d5d992e512e22949713b2194987061cb9e9913ce2c992b8d8cfec3 |
Hashes for pycryptodome-3.12.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b07a4238465eb8c65dd5df2ab8ba6df127e412293c0ed7656c003336f557a100 |
|
MD5 | 7821c09d3abce7fe3b9df11112fa519a |
|
BLAKE2b-256 | 7d0c96016cc4a60a4dde6e1bdf16ec5fcaeb2775984b7668fd3a774f18955e62 |
Hashes for pycryptodome-3.12.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 212c7f7fe11cad9275fbcff50ca977f1c6643f13560d081e7b0f70596df447b8 |
|
MD5 | 967686a3df82c9a027b74def643d40fe |
|
BLAKE2b-256 | 9470e18dbcbfb349bdf10b8ab5fd0105f333111ea0b35754890d31a97d49e06e |
Hashes for pycryptodome-3.12.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39da5807aa1ff820799c928f745f89432908bf6624b9e981d2d7f9e55d91b860 |
|
MD5 | da3bd7c2df82d033e1b3f1bbf1b36f09 |
|
BLAKE2b-256 | 118e740ff86522e1c328718c0c5d3152585db96aa9d82008054897e280fafe23 |
Hashes for pycryptodome-3.12.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bb0d340c93bcb674ea8899e2f6408ec64c6c21731a59481332b4b2a8143cc60 |
|
MD5 | dd0eeca120a008022169ebc618e3d6b5 |
|
BLAKE2b-256 | 19995f0fe1a0933ad77df854b9a39e781a27bd2fcac6a7704d086dd7fff2d3cf |
Hashes for pycryptodome-3.12.0-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1181c90d1a6aee68a84826825548d0db1b58d8541101f908d779d601d1690586 |
|
MD5 | b498a4b0580c28ce3b10334b478cda2f |
|
BLAKE2b-256 | 920c176f521b9ab1dd13b7f18aef2eaec6d15dffbcfa7b36b406b43499ccf266 |
Hashes for pycryptodome-3.12.0-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cded12e13785bbdf4ba1ff5fb9d261cd98162145f869e4fbc4a4b9083392f0b |
|
MD5 | 9027bf12a5b9eb38da92f90c4429410e |
|
BLAKE2b-256 | a42085e7cf4f303a89e2e9136c4091ba17e95d525c11fd616cc6edd754a2c3b8 |
Hashes for pycryptodome-3.12.0-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e05f994f30f1cda3cbe57441f41220d16731cf99d868bb02a8f6484c454c206b |
|
MD5 | 732906b8dab5c943030b06482fd20829 |
|
BLAKE2b-256 | 9d40fb388f5b2b3997a0c38d4aa58101603b45010d4f3a6d45cc66322ddce922 |
Hashes for pycryptodome-3.12.0-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f2f3dd596c6128d91314e60a6bcf4344610ef0e97f4ae4dd1770f86dd0748d8 |
|
MD5 | 882c200c6b62ae3fd2eea9dbf543d5c2 |
|
BLAKE2b-256 | fdcb54638fd659eca2d92ed52017235d4875c19d8a6e14e8e7306b32fb49afae |
Hashes for pycryptodome-3.12.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a78e4324e566b5fbc2b51e9240950d82fa9e1c7eb77acdf27f58712f65622c1d |
|
MD5 | 1ba9d5a25a7488aa6787ca190ae2b52f |
|
BLAKE2b-256 | 744bd6a776a6a03642f480320eb6e8bc90e20db9b1691f8348b2806a183c51b7 |
Hashes for pycryptodome-3.12.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3558616f45d8584aee3eba27559bc6fd0ba9be6c076610ed3cc62bd5229ffdc3 |
|
MD5 | a6a4e458a7196c0ac620d919aa201e6e |
|
BLAKE2b-256 | 3ccd276f31e66837b1967ee98ffbb1a1e05cc6268325beafc45562926985f606 |
Hashes for pycryptodome-3.12.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de0b711d673904dd6c65307ead36cb76622365a393569bf880895cba21195b7a |
|
MD5 | a481513825c6232c74c01b9813b67a59 |
|
BLAKE2b-256 | 0c6f62a193146d79ee209ea3adf4261f3092ded16fe6e12a3760a1fa0e4c0eb2 |
Hashes for pycryptodome-3.12.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 341c6bbf932c406b4f3ee2372e8589b67ac0cf4e99e7dc081440f43a3cde9f0f |
|
MD5 | 23bc2d84fd7f4ddb2afcd7565fa3fb12 |
|
BLAKE2b-256 | 1735ee00a616fb310bf8aaa4dc9c48f9122c9e8970887de1e35e129f9edc3ae0 |
Hashes for pycryptodome-3.12.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aed7eb4b64c600fbc5e6d4238991ad1b4179a558401f203d1fcbd24883748982 |
|
MD5 | e42a22a96e2c60911321735d8c16ee83 |
|
BLAKE2b-256 | 914136406f36ad4a1bef4bfe6ef8aa2bd5dd7f3a7cd759ffe10435a5dd652423 |
Hashes for pycryptodome-3.12.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32d15da81959faea6cbed95df2bb44f7f796211c110cf90b5ad3b2aeeb97fc8e |
|
MD5 | 5e1c62c63d57dd01ae1ef91d64bb8948 |
|
BLAKE2b-256 | 3feab7afa61a0ee3960224d4a44ad2f7832009400ba11880ed31ed58f75312b8 |
Hashes for pycryptodome-3.12.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a8c24d39d4a237dbfe181ea6593792bf9b5582c7fcfa7b8e0e12fda5eec07af |
|
MD5 | fb61f46d0f0c17f2fb01d2f62c8de57b |
|
BLAKE2b-256 | 6542c71721611c4c45743d9af494be0c1853b4673347fe4a1f917cbec2b9f267 |
Hashes for pycryptodome-3.12.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93acad54a72d81253242eb0a15064be559ec9d989e5173286dc21cad19f01765 |
|
MD5 | 979388180007ae7d3cf049cc2a7c52db |
|
BLAKE2b-256 | 8245213f47d4c56c4ee82ac4e0402b4549e665234a68b834dfd18d4ffdce215b |
Hashes for pycryptodome-3.12.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f8f5b7b53516da7511951910ab458e799173722c91fea54e2ba2f56d102e4aa |
|
MD5 | 640afd13ed9c09c0afd4be68d14378e9 |
|
BLAKE2b-256 | 02ce99f7531ec1c29e280a1625c5fb6ecb9dd2e110556e8bd68c0672a92ea4f2 |
Hashes for pycryptodome-3.12.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc88355c4b261ed259268e65705b28b44d99570337694d593f06e3b1698eaaf3 |
|
MD5 | ee9ddfbfa149d6d238547d5a8d1f1635 |
|
BLAKE2b-256 | 20b420d528d130a9ee7d3a07b3149130dfdb8982d8b68675dcde95ca5fddff4f |
Hashes for pycryptodome-3.12.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db66ccda65d5d20c17b00768e462a86f6f540f9aea8419a7f76cc7d9effd82cd |
|
MD5 | 510c4dbc45b00d00ae5b85f24f3c20a4 |
|
BLAKE2b-256 | 1eef8822f37c62632f7e7761bbf2d49f045a3bb0924cd8e3d16d16711f989e82 |
Hashes for pycryptodome-3.12.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b91404611767a7485837a6f1fd20cf9a5ae0ad362040a022cd65827ecb1b0d00 |
|
MD5 | 7c0c5320c57f4db6a12cb0adf328b291 |
|
BLAKE2b-256 | bb50af4a941cbff5bea654122c39b6d79fb3d3b84c809ee345e6964f46882abb |
Hashes for pycryptodome-3.12.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e80f7469b0b3ea0f694230477d8501dc5a30a717e94fddd4821e6721f3053eae |
|
MD5 | 71e7bce76337dde3c816e15977c69fab |
|
BLAKE2b-256 | 224a9f73748e16dcf3192e296e511307b0b322925bf4caafa1225560015792f1 |
Hashes for pycryptodome-3.12.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90ad3381ccdc6a24cc2841e295706a168f32abefe64c679695712acac71fd5da |
|
MD5 | 41907ab9442c5b1cce1e84967abc870f |
|
BLAKE2b-256 | 1b430b89c6ba8b3b23de6847164faae8857d7a5ec8b1a823bb9caf2a7c55b568 |