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-curves; Ed25519, Ed448)
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 and EdDSA
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.15.0-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c772c485b27967514d0df1458b56875f4b6d025566bf27399d0c239ff1b369f |
|
MD5 | 6c0970812d8f2a096ca3c30c3aa8b0f2 |
|
BLAKE2b-256 | 38a7ff3d1e9ef28726433b5d6edb5ded96a0b9d85722dad9c3faf27a1372b0a3 |
Hashes for pycryptodome-3.15.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2a39a66057ab191e5c27211a7daf8f0737f23acbf6b3562b25a62df65ffcb7b |
|
MD5 | a4cf2cfe8894d5eed28b7edf91b7bb3b |
|
BLAKE2b-256 | b5dea1d1407e0bfd396e62c9efe3261be0c76888a8f3722b9b7f61f460e0e328 |
Hashes for pycryptodome-3.15.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecaaef2d21b365d9c5ca8427ffc10cebed9d9102749fd502218c23cb9a05feb5 |
|
MD5 | b7301b61b13cd1da84d4086a14d3da36 |
|
BLAKE2b-256 | 744d1340e63264e07ff5f1e1daec9d66015ade99d64f3b966a52ff7ff3f4a362 |
Hashes for pycryptodome-3.15.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9cc96e274b253e47ad33ae1fccc36ea386f5251a823ccb50593a935db47fdd2 |
|
MD5 | 6a63323b62b95127406fb856382f4c64 |
|
BLAKE2b-256 | c7d0319a673a6514beb9a203fdb60f28b87135bbbdda0b3ea782c022414a9034 |
Hashes for pycryptodome-3.15.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8f06611e691c2ce45ca09bbf983e2ff2f8f4f87313609d80c125aff9fad6e7f |
|
MD5 | 6c42ef4311a97dfb3ab7dd98a5c292e3 |
|
BLAKE2b-256 | c8031f745c158299000664a6fb5c0b28d5359837b05b4ba1f5a37645da5cad4d |
Hashes for pycryptodome-3.15.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60b4faae330c3624cc5a546ba9cfd7b8273995a15de94ee4538130d74953ec2e |
|
MD5 | 93521a5f8804363b9bebddaa931eefb7 |
|
BLAKE2b-256 | b16c4ee93e2e863e95caffc5a356b867e86f5596f4e38cddb43848412dd69176 |
Hashes for pycryptodome-3.15.0-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff287bcba9fbeb4f1cccc1f2e90a08d691480735a611ee83c80a7d74ad72b9d9 |
|
MD5 | 0cb60c2657f72f91a7e6ab9782be9932 |
|
BLAKE2b-256 | 9be8628f92b38ee4475d7b316d04c2913d397cdcc3f3a873bdbea10a438ba9fe |
Hashes for pycryptodome-3.15.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eaadc058106344a566dc51d3d3a758ab07f8edde013712bc8d22032a86b264f |
|
MD5 | 2558ae26e0780e1f1c6aec2d7c425112 |
|
BLAKE2b-256 | bb7a0e51d1dc253d0571106009b94762b8ab5a7c905079c354247b721ae1f198 |
Hashes for pycryptodome-3.15.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c77126899c4b9c9827ddf50565e93955cb3996813c18900c16b2ea0474e130e9 |
|
MD5 | 3d2ddcc5ff2237de642c49801719d2ac |
|
BLAKE2b-256 | 00075a262e3213a9358e2f7caf9080aa8a984f44bf4aee84592dfb965dd34355 |
Hashes for pycryptodome-3.15.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e244ab85c422260de91cda6379e8e986405b4f13dc97d2876497178707f87fc1 |
|
MD5 | 95f36ef481303a888407ec67c25a03fb |
|
BLAKE2b-256 | 556028d873c1efe46cf62494a0393fe34e4757821123fb1af9c45be3b2eeba8a |
Hashes for pycryptodome-3.15.0-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50ca7e587b8e541eb6c192acf92449d95377d1f88908c0a32ac5ac2703ebe28b |
|
MD5 | d4cfdc847c2a24ff4d1935c4020a792c |
|
BLAKE2b-256 | 02faf83072580377dcdf4d2ff3c7d25d225790302a86cfd1e9eb2c2832740135 |
Hashes for pycryptodome-3.15.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 092a26e78b73f2530b8bd6b3898e7453ab2f36e42fd85097d705d6aba2ec3e5e |
|
MD5 | 35d746625063714b7c77abbdbee51871 |
|
BLAKE2b-256 | 355bba592bfd0d3bad9450645b751c132cf1028dc111ae699fd8e70808414941 |
Hashes for pycryptodome-3.15.0-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b52cb18b0ad46087caeb37a15e08040f3b4c2d444d58371b6f5d786d95534c2 |
|
MD5 | be830d23d869ac7f8b66520df76d3c20 |
|
BLAKE2b-256 | 7dbee3e56f7f92bebf506aec486eb71d91952d2e9faf5e10872a89931db4120f |
Hashes for pycryptodome-3.15.0-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57f565acd2f0cf6fb3e1ba553d0cb1f33405ec1f9c5ded9b9a0a5320f2c0bd3d |
|
MD5 | 81114ca69bed1c33ac6c3f3df322a16f |
|
BLAKE2b-256 | c5b4526dd68f6c8ff6b785d7a08da7a6bba5646cced508454f1d1ab948e6b737 |
Hashes for pycryptodome-3.15.0-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b22bcd9ec55e9c74927f6b1f69843cb256fb5a465088ce62837f793d9ffea88 |
|
MD5 | 6eb23b3a60ceedaa4836c112ce6f2020 |
|
BLAKE2b-256 | b154ad3e2e07a5a7ceb926971398f7e3a0eeee85b6e1d3e658df8f71a4497daa |
Hashes for pycryptodome-3.15.0-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c3ccad74eeb7b001f3538643c4225eac398c77d617ebb3e57571a897943c667 |
|
MD5 | 0ed24a9f11c53d9cadc1346a80e3c6d7 |
|
BLAKE2b-256 | 2e6f27fbd8f3fd8b48feba2b4226f7f8d23af7755c54957fccc3fe6f44b764cf |
Hashes for pycryptodome-3.15.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ee40e2168f1348ae476676a2e938ca80a2f57b14a249d8fe0d3cdf803e5a676 |
|
MD5 | 1cc077213355460900ba3059e32a5e08 |
|
BLAKE2b-256 | 2fdce5bb825eb7348773b77ace0d977f549af851c1d8300f1ba60119e88ba715 |
Hashes for pycryptodome-3.15.0-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb6fce570869e70cc8ebe68eaa1c26bed56d40ad0f93431ee61d400525433c54 |
|
MD5 | eee784aa5ea5a26831024771400b11a6 |
|
BLAKE2b-256 | 6378ee7c0591298cf612e6ef72c31cbfdf732ff6444831131bdc1359f1cb7b30 |
Hashes for pycryptodome-3.15.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 045d75527241d17e6ef13636d845a12e54660aa82e823b3b3341bcf5af03fa79 |
|
MD5 | 7a0c57d696cd11252ef230cc6ca024c5 |
|
BLAKE2b-256 | 9bc06aac989804de5526099062b263be17c7216901fc2fbbc4e08b6e44d9c236 |
Hashes for pycryptodome-3.15.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3640deff4197fa064295aaac10ab49a0d55ef3d6a54ae1499c40d646655c89f |
|
MD5 | 6c328b56ded8539a705b65cb5465bd25 |
|
BLAKE2b-256 | 5a3d56084bd2b973c262a59d6b7c5618d93f8ee6045c484e7675e97104e48ac3 |
Hashes for pycryptodome-3.15.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2aa55aae81f935a08d5a3c2042eb81741a43e044bd8a81ea7239448ad751f763 |
|
MD5 | 2d8c47b5b8eb008b3633c8c379404361 |
|
BLAKE2b-256 | 74f8e6e9e2426f332b2216950df88bdf160ed90b2dbe42dfd5fc5e8ac33bd583 |
Hashes for pycryptodome-3.15.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0926f7cc3735033061ef3cf27ed16faad6544b14666410727b31fea85a5b16eb |
|
MD5 | 0251f9ce4a1735494097e89a024129ec |
|
BLAKE2b-256 | 3409ab89d75316862ae9fced5516ba533dc17da89938e7de4d5ddfd8483fd9e8 |
Hashes for pycryptodome-3.15.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9c5b1a1977491533dfd31e01550ee36ae0249d78aae7f632590db833a5012b8 |
|
MD5 | 75d5a20cc109118589224c0240dc99b4 |
|
BLAKE2b-256 | b1e4079a70b03928a01d5517cc69a5cf4bca79df7c3d85e27e4e66e9b4e211e7 |
Hashes for pycryptodome-3.15.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e3a8f6ee405b3bd1c4da371b93c31f7027944b2bcce0697022801db93120d83 |
|
MD5 | 48b26d841aeece43fefc37d4898b2560 |
|
BLAKE2b-256 | 5c9c2cfbb08a3f573e35818fe49d4f6efdc6c157553b71bc7d65592de49f623f |
Hashes for pycryptodome-3.15.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd2184aae6ee2a944aaa49113e6f5787cdc5e4db1eb8edb1aea914bd75f33a0c |
|
MD5 | ef146d605ae4a83fa5f14d1ecb8325bb |
|
BLAKE2b-256 | b1d54a140b9d316681e9d2e55ac8a29f7f70b446c795e0af5f3de2500d7654b0 |
Hashes for pycryptodome-3.15.0-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ae53125de5b0d2c95194d957db9bb2681da8c24d0fb0fe3b056de2bcaf5d837 |
|
MD5 | 57e62a07820d66054d860d5d33b8744e |
|
BLAKE2b-256 | 7197f20dcea3fdebaa1ab649053ec2866a8b668d618e5aef355482137d34d761 |
Hashes for pycryptodome-3.15.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ec709b0a58b539a4f9d33fb8508264c3678d7edb33a68b8906ba914f71e8c13 |
|
MD5 | f7c422cf5f73519eef97aaca7844a581 |
|
BLAKE2b-256 | 6c737b25e21cbb4aa8817f85fa86537798d681f3dd479fd5d4737e9f3efbaf9e |
Hashes for pycryptodome-3.15.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5099c9ca345b2f252f0c28e96904643153bae9258647585e5e6f649bb7a1844a |
|
MD5 | 0a96343fca69573a45d300f6c2befb42 |
|
BLAKE2b-256 | 869393d5752292d6cf2709d9c3343c26e5a6f308976a566b6e4a389094b83fbe |
Hashes for pycryptodome-3.15.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c9ed8aa31c146bef65d89a1b655f5f4eab5e1120f55fc297713c89c9e56ff0b |
|
MD5 | b62aeef6239ea1550136cebb8fa7bbdc |
|
BLAKE2b-256 | 01bc7c67348624581fc57e5cb34e650ba09ba668e08e41937d1d1bbdc8cd9e9b |
Hashes for pycryptodome-3.15.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ea63d46157386c5053cfebcdd9bd8e0c8b7b0ac4a0507a027f5174929403884 |
|
MD5 | a69917febfdfffe81b46ff4aaee027fe |
|
BLAKE2b-256 | 1eede908d15473f14975f1b29d52de57fee7b035f87ff9560f9dae2e37bf9bc2 |
Hashes for pycryptodome-3.15.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ffd8b31561455453ca9f62cb4c24e6b8d119d6d531087af5f14b64bee2c23e6 |
|
MD5 | 2c0a1609f50457a3a9ad474e427f1512 |
|
BLAKE2b-256 | 6a0984ac32b49e991308749d615e7a5b9ae13b94adb01279224fbca584636977 |
Hashes for pycryptodome-3.15.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff7ae90e36c1715a54446e7872b76102baa5c63aa980917f4aa45e8c78d1a3ec |
|
MD5 | c382a9084cfc415e68c9865a6b3456da |
|
BLAKE2b-256 | 7dac843a78bc3c5c680f4c22f530bdb6e2927b770f77630948b0e0247cc23c04 |