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 pycryptodomex
All modules are installed under the Cryptodome package.
Check the pycryptodome project for the equivalent library that works under the Crypto 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 pycryptodomex-3.19.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f3c58971784fba0e014bc3f8aed1197b86719631e1b597d36d7354be5598312 |
|
MD5 | 3ff421e67d284c34a6f0406471da97b5 |
|
BLAKE2b-256 | 34ebd3e569f028fc1f19206b5afeb1d48cf9cd68d7632e5ce03dffa75828f01a |
Hashes for pycryptodomex-3.19.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dffe067d5fff14dba4d18ff7d459cc2a47576d82dafbff13a8f1199c3353e41 |
|
MD5 | b4edfdacbc395078d854fd965b071ac9 |
|
BLAKE2b-256 | 6d84a119b70e69699521a8650922344c97ecd200ee644b9c4dced983ef25d630 |
Hashes for pycryptodomex-3.19.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aab7941c2ff53eb63cb26252770e4f14386d79ce07baeffbf98a1323c1646545 |
|
MD5 | 06b778e82c49b25fba7e0860360779e6 |
|
BLAKE2b-256 | d03104f23583b483c459b2cc57e70e2006e3f75c4e85d4db53d5465b5bf989f3 |
Hashes for pycryptodomex-3.19.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bc4b7bfaac56e6dfd62044847443a3d110c7abea7fcb0d68c1aea64ed3a6697 |
|
MD5 | e15820ac18f08f0ba799354c38a583d3 |
|
BLAKE2b-256 | 6352432c59897c2a94cde355783df587a873d9418f6fb0cfad97223b8f94e266 |
Hashes for pycryptodomex-3.19.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9919a1edd2a83c4dfb69f1d8a4c0c5efde7147ef15b07775633372b80c90b5d8 |
|
MD5 | c124df03e2ef41408a6c4b874509bec0 |
|
BLAKE2b-256 | b19238cb11c68f0267155317bc5dbd35dc91e0c765341fe1f03cea65ef8429ad |
Hashes for pycryptodomex-3.19.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8a97b1acd36e9ce9d4067d94a8be99c458f0eb8070828639302a95cfcf0770b |
|
MD5 | cea60ebd3bf9434a2c5d25425ecfea39 |
|
BLAKE2b-256 | 9a01980ef020ef4c45a0cb694516af75a40421b974a5b688b5212ca24ec28993 |
Hashes for pycryptodomex-3.19.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62f51a63d73153482729904381dd2de86800b0733a8814ee8f072fa73e5c92fb |
|
MD5 | 26297d404f5780bc5e63222f2471944a |
|
BLAKE2b-256 | 3974b45468266d09cf51c30b4ef77588fce14b1b966c695020da010fc3f0679e |
Hashes for pycryptodomex-3.19.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ca98de2e5ac100e57a7116309723360e8f799f722509e376dc396cdf65eec9c |
|
MD5 | 76ca45c1addaeb7d24c5a87a2c9464fd |
|
BLAKE2b-256 | 53c1855104a973224c71a50dd82b59639f4c5d781cbe1f334c92c336997166f1 |
Hashes for pycryptodomex-3.19.1-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39eb1f82ac3ba3e39d866f38e480e8fa53fcdd22260340f05f54a8188d47d510 |
|
MD5 | a7a6e57588813cd6d843b1e834cf0eda |
|
BLAKE2b-256 | 27879d2e2febf3bd215cbbf141e3607e63c0da60de8fffa39b1e3f189eaa9780 |
Hashes for pycryptodomex-3.19.1-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac562e239d98cfef763866c0aee4586affb0d58c592202f06c87241af99db241 |
|
MD5 | 8431d51eaf4f9e3d39e24adb1c68bb63 |
|
BLAKE2b-256 | 0820b28b4c33c25945d96da937e7f884139f788bd61b875fb9ee1f015f3baffe |
Hashes for pycryptodomex-3.19.1-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8b3d9e7c17c1ffc1fa5b11c0bbab8a5df3de8596bb32ad30281b21e5ede4bf5 |
|
MD5 | a33246d1454d3d8cb1eaa8de2172546c |
|
BLAKE2b-256 | 62a6e00a6d83272339a37d4993bd904250113269359e77728c291e21428217f7 |
Hashes for pycryptodomex-3.19.1-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f24f49fc6bd706d87048654d6be6c7c967d6836d4879e3a7c439275fab9948ad |
|
MD5 | 27b4bd950dabbe6f8af4e80c86e972d9 |
|
BLAKE2b-256 | 18483aa6ee1c7f1dc598fe7a7f207499d958d4ade053140ad0e9ac5c8dcac604 |
Hashes for pycryptodomex-3.19.1-cp35-abi3-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de5a43901e47e7a6938490fc5de3074f6e35c8b481a75b227c0d24d6099bd41d |
|
MD5 | 7c059bda424bed34918ea79a3bc77c75 |
|
BLAKE2b-256 | 78bc8f4038db56dcb51b2d5bcfc36848a2d8dc4e93447c944aac5fd0a9165507 |
Hashes for pycryptodomex-3.19.1-cp35-abi3-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c04cfff163c05d033bf28e3c4429d8222796738c7b6c1638b9d7090b904611e |
|
MD5 | fe5b9943e5a58f04d657cb769e3c4de2 |
|
BLAKE2b-256 | d1f57bacb118af11fe175e5fe6e6b641f569285979486fba3282bf2c2235fc4a |
Hashes for pycryptodomex-3.19.1-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76414d39df6b45bcc4f38cf1ba2031e0f4b8e99d1ba3c2eee31ffe1b9f039733 |
|
MD5 | cab77cb480a9320d66ff10dcf83b9056 |
|
BLAKE2b-256 | f53d961a69dedce4d3967b834c3d2324cd36a9b8faa5d3daefd8a53818ef05ca |
Hashes for pycryptodomex-3.19.1-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96000b837bcd8e3bf86b419924a056c978e45027281e4318650c81c25a3ef6cc |
|
MD5 | 3eb07270f597b4fcc1e30e5aab287942 |
|
BLAKE2b-256 | 7874e22cc8c2bb5e4d746952b22a2f0ef98988851804c35d89890d8ea6c22f18 |
Hashes for pycryptodomex-3.19.1-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 371bbe0be17b4dd8cc0c2f378d75ea33f00d5a39884c09a672016ac40145a5fa |
|
MD5 | b967d96727fa38e87cb6d59e8d686b1c |
|
BLAKE2b-256 | aaae7246a53706182cea17fad5f38dfeb752c00c037dc5ba933f4a4d643d06a0 |
Hashes for pycryptodomex-3.19.1-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 011e859026ecbd15b8e720e8992361186e582cf726c50bde6ff8c0c05e820ddf |
|
MD5 | a24d661d1cc8c40847bcee2ade29d621 |
|
BLAKE2b-256 | d14975cb37ff99e2daa38ae17e9beb66cc804b32b5003c7d9c96debe1584952e |
Hashes for pycryptodomex-3.19.1-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae75eea2e908383fd4c659fdcfe9621a72869e3e3ee73904227e93b7f7b80b54 |
|
MD5 | 260719dc59d267b4b4594fc1dd41ed7d |
|
BLAKE2b-256 | 05a0fe3877335753af4cc154ba0040fc963d115e18437dbf632d0a03b3595f8c |
Hashes for pycryptodomex-3.19.1-cp35-abi3-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed3bdda44cc05dd13eee697ab9bea6928531bb7b218e68e66d0d3eb2ebab043e |
|
MD5 | f394122bb0423f360517d730862ccacc |
|
BLAKE2b-256 | aaec39a8c676c440f9c840897980150e24db619d2ff98857540ac1a961140ef5 |
Hashes for pycryptodomex-3.19.1-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d45d0d35a238d838b872598fa865bbfb31aaef9aeeda77c68b04ef79f9a469dc |
|
MD5 | 36272cd98dc776f57bc3da57c037519d |
|
BLAKE2b-256 | 0942d5186379a9bfcb264893b18fe20bc8cba5e52d6b58c368f498dd6175b665 |
Hashes for pycryptodomex-3.19.1-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | beb5f0664f49b6093da179ee8e27c1d670779f50b9ece0886ce491bb8bd63728 |
|
MD5 | 61dbeb5ea6949aceb92258744e1aca13 |
|
BLAKE2b-256 | 9b135369e4743c48a5fc28ff908781d054798840346a195743ac50fe3f713006 |
Hashes for pycryptodomex-3.19.1-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9332b04bf3f838327087b028f690f4ddb9341eb014a0221e79b9c19a77f7555 |
|
MD5 | d091c2ee00a86d77ec3e7747ff6b93ba |
|
BLAKE2b-256 | dcc4728452a12679348bbf36d31223f9f91c3e16266208cb41f62d82d7379ab8 |
Hashes for pycryptodomex-3.19.1-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7a77391fd351ff1bdf8475558ddc6e92950218cb905419ee14aa02f370f1054 |
|
MD5 | c7a37064cd1ff7e150402f205c73885f |
|
BLAKE2b-256 | a41004bda50399dac8e224ff5f26b4afbf10456a1e353ee50bae44ec78165ae0 |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1ae2fb8d5d6771670436dcc889b293e363c97647a6d31c21eebc12b7b760010 |
|
MD5 | 6942c2e809a5885c6f0ca8dd054a0e81 |
|
BLAKE2b-256 | ff4fc1dcc9df9076e39a16c34325d056e201e86e7b1f2b58111b6a766466f894 |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23707238b024b36c35dd3428f5af6c1f0c5ef54c21e387a2063633717699b8b2 |
|
MD5 | ffb05664b96599b86e8f211f3a712834 |
|
BLAKE2b-256 | 2043b3a4e12f2d4f53014d727abaa4873d29fd4bfb81fa3c18a2267b7cc58743 |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e94a7e986b117b72e9472f8eafdd81748dafff30815401f9760f759f1debe9ef |
|
MD5 | 3c3de2d935277a995875a01e27450e6b |
|
BLAKE2b-256 | 507c08cdcae73648d05a65d86892ebedbf9f2ad8efcf5b4b460cd74e6145bfca |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10c2eed4efdfa084b602ab922e699a0a2ba82053baebfc8afcaf27489def7955 |
|
MD5 | f2cca3e67b5b90d3c45420218a3b55db |
|
BLAKE2b-256 | b4261ce2f2b2bffb6c93a16b8c3a9831b86f4017a4274d1564c8563bb693a1c1 |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b42e2743893f386dfb58fe24a4c8be5305c3d1c825d5f23d9e63fd0700d1110 |
|
MD5 | b9c432c12681a1f25d3a5b785b106ea1 |
|
BLAKE2b-256 | e63fd96d495d5054258209f819504c01e8b204f829ba112b6d6e9bd939507c41 |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9cb88ed323be1aa642b3c17cd5caa1a03c3a8fbad092d48ecefe88e328ffae3 |
|
MD5 | cc3e7e8d3d1ed020adee9e61960e2f03 |
|
BLAKE2b-256 | 02d0f1457d4796a5614b8fa004cf1ffd48879fe347d60872af82e6dd956063c9 |
Hashes for pycryptodomex-3.19.1-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5c336dc698650283ad06f8c0237a984087d0af9f403ff21d633507335628156 |
|
MD5 | f67f1e8415419530c8ba4cab3e4d1418 |
|
BLAKE2b-256 | 5c3a74bc5b22ab88b6e6ba261529564cdb4c6c2f79a27517d0efa247f4be29e3 |