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.18.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 215be2980a6b70704c10796dd7003eb4390e7be138ac6fb8344bf47e71a8d470 |
|
MD5 | a4569d1ada27dda8f12efc5048b6b814 |
|
BLAKE2b-256 | 118d6681e86a5640923f9ac029951df69e98857a53ddc436b661f6514d0d1205 |
Hashes for pycryptodomex-3.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbdcce0a226d9205560a5936b05208c709b01d493ed8307792075dedfaaffa5f |
|
MD5 | 13afa16f2a8282b3328e78b0604499c5 |
|
BLAKE2b-256 | bd29e1145ac172a3cc0ec70d2857ea919f87430d3f2b0727022b8f4329527faa |
Hashes for pycryptodomex-3.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58fc0aceb9c961b9897facec9da24c6a94c5db04597ec832060f53d4d6a07196 |
|
MD5 | 0900aae8e0dd78c5840feecbfe5a706e |
|
BLAKE2b-256 | b976dae6bec36fa6a36d2579d99fc64f67038aa112598eed1fe35315332474f5 |
Hashes for pycryptodomex-3.18.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73d64b32d84cf48d9ec62106aa277dbe99ab5fbfd38c5100bc7bddd3beb569f7 |
|
MD5 | 31407a5b163e1131b0ecbe0947b08d93 |
|
BLAKE2b-256 | 47fce94343fc7fbffb5eec5a96ca2d92f7cc4c970f4618bf152c7054c3e9b0bd |
Hashes for pycryptodomex-3.18.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71687eed47df7e965f6e0bf3cadef98f368d5221f0fb89d2132effe1a3e6a194 |
|
MD5 | da71e8742c079cf59228961e550ebd69 |
|
BLAKE2b-256 | 4a9dd8e412629a4f55338cf60567bac2e0acccd021979f1d75d693b1e3a64020 |
Hashes for pycryptodomex-3.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d35a8ffdc8b05e4b353ba281217c8437f02c57d7233363824e9d794cf753c419 |
|
MD5 | 7a83be24579ec3acd7a362075c19ecf6 |
|
BLAKE2b-256 | 0ae9b2cd9bc1035f032d36b2400024c718b0a0b07214056a24e519b53a2a3b7a |
Hashes for pycryptodomex-3.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76f0a46bee539dae4b3dfe37216f678769349576b0080fdbe431d19a02da42ff |
|
MD5 | be269e11ea09b059fee94a27df1777ba |
|
BLAKE2b-256 | 15631029901f16d01298cf77e7d130b8bbd2aeeefac189009dee350a563a11d7 |
Hashes for pycryptodomex-3.18.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bec6c80994d4e7a38312072f89458903b65ec99bed2d65aa4de96d997a53ea7a |
|
MD5 | c4219d2f6402eb73cd4378a35ff8198a |
|
BLAKE2b-256 | 8fad8a6ace1d145c6e699477a3f71f5a5183c922182d1bf1411bbc2bf918914d |
Hashes for pycryptodomex-3.18.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75672205148bdea34669173366df005dbd52be05115e919551ee97171083423d |
|
MD5 | 7ea8ef52f8ec3dc50dcd853a569532d9 |
|
BLAKE2b-256 | 73c1080fcc7d0a7e25808e9cd8814d543e8f80466ce476003fe17e109deae568 |
Hashes for pycryptodomex-3.18.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dc4eab20f4f04a2d00220fdc9258717b82d31913552e766d5f00282c031b70a |
|
MD5 | 71da5c1fd534189e1caf95cbba577b9b |
|
BLAKE2b-256 | 1649474341bfa056ab417bb3881d9d761d1ad8e7e93e80dc7f323c26dfd28ccc |
Hashes for pycryptodomex-3.18.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e00a4bacb83a2627e8210cb353a2e31f04befc1155db2976e5e239dd66482278 |
|
MD5 | ea0736255015bd2d5bba4d63b124e1aa |
|
BLAKE2b-256 | 8adb12a08d50aa8586c2e32b2b4461b89c0de057d1c637a13ac8b785dfd55327 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d56c9ec41258fd3734db9f5e4d2faeabe48644ba9ca23b18e1839b3bdf093222 |
|
MD5 | 45cb86fbab816ce623536549a09828ff |
|
BLAKE2b-256 | 049f48b22627934a89ceec72ef825eb121c17ec92c009045875fc0f2d10c1081 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ed3606832987018615f68e8ed716a7065c09a0fe94afd7c9ca1b6777f0ac6eb |
|
MD5 | 0a0477365e86447e338ee6f9c2f8fa82 |
|
BLAKE2b-256 | 6de556c1479ccefa96551b46d07c8881c202c9be0ccda1ffd957a032c1306940 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1949e09ea49b09c36d11a951b16ff2a05a0ffe969dda1846e4686ee342fe8646 |
|
MD5 | 6dd45be2563723d9989d807c9a127975 |
|
BLAKE2b-256 | 8d2ec1433abaa4335a0c668ff93fd57f714436ec6107eeff1f43f456011b2b27 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27072a494ce621cc7a9096bbf60ed66826bb94db24b49b7359509e7951033e74 |
|
MD5 | 6dc6d9da55899af0f530a4a22031f3ae |
|
BLAKE2b-256 | 7899cb6e8abdca42ec6b6bfcd5c0ee6376936addc4844d45d30c53b6a5511087 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d84e105787f5e5d36ec6a581ff37a1048d12e638688074b2a00bcf402f9aa1c2 |
|
MD5 | 1f717d37d42e6ab1b00d5cbf155ce306 |
|
BLAKE2b-256 | 4509ce11344724e674957402b5f3c0d663388f755ecd1c864f0c405b5f959bd8 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6875eb8666f68ddbd39097867325bd22771f595b4e2b0149739b5623c8bf899b |
|
MD5 | 83086b8c497d4b2441d5288208a8a200 |
|
BLAKE2b-256 | 15bf392fefeacbc2bdf91eabf893daa92ade1804b631a516e189e833b3f06c6d |
Hashes for pycryptodomex-3.18.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6421d23d6a648e83ba2670a352bcd978542dad86829209f59d17a3f087f4afef |
|
MD5 | c3dd2b29a4497993666f3362cccf2dd9 |
|
BLAKE2b-256 | 1a0c1b35461d7091e074d2c393face4768cb99844174dd858ac98e5044ca14ac |
Hashes for pycryptodomex-3.18.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 302a8f37c224e7b5d72017d462a2be058e28f7be627bdd854066e16722d0fc0c |
|
MD5 | 744d379ab42dffe48cb8e41b0bb59844 |
|
BLAKE2b-256 | a7c08ecbd1cecc470a4aed2e5b69db367de5f87692d6d40e604b5dae58b77ed6 |
Hashes for pycryptodomex-3.18.0-cp35-abi3-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac614363a86cc53d8ba44b6c469831d1555947e69ab3276ae8d6edc219f570f7 |
|
MD5 | 6c0758c7b9f823cbc769eef13f84fc02 |
|
BLAKE2b-256 | 46e67dbe57f21195e9f85c4d77ae995aa2a39dc45a2e34a978d98099c6ed43ce |
Hashes for pycryptodomex-3.18.0-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f237278836dda412a325e9340ba2e6a84cb0f56b9244781e5b61f10b3905de88 |
|
MD5 | cf629298bad0fb3221166716a7382758 |
|
BLAKE2b-256 | b5480dcad9903dc331169f4ba8bf60e5a81c41d3725ae5ccca20f590269641f5 |
Hashes for pycryptodomex-3.18.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d9314ac785a5b75d5aaf924c5f21d6ca7e8df442e5cf4f0fefad4f6e284d422 |
|
MD5 | eaadfbb2bc3ef143f370749c2acadf14 |
|
BLAKE2b-256 | 1bdaf8bde80db24989614622d8f13ae3788343bf599e612d96b9b8f8452f5bd9 |
Hashes for pycryptodomex-3.18.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ff129a5a0eb5ff16e45ca4fa70a6051da7f3de303c33b259063c19be0c43d35 |
|
MD5 | f928645b1d6aeb862c803464ad1ad818 |
|
BLAKE2b-256 | ef1a1ce7e65be28111cf6115a968516074f486edf7daa5d351cb2e7269698f84 |
Hashes for pycryptodomex-3.18.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5594a125dae30d60e94f37797fc67ce3c744522de7992c7c360d02fdb34918f8 |
|
MD5 | f08242a9053d8d7218b91c1ccfab29bf |
|
BLAKE2b-256 | 86b4cee6a2153e0614b7b4ab476ab64827281057e49cb357d736ab986190b20b |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d9379c684efea80fdab02a3eb0169372bca7db13f9332cb67483b8dc8b67c37 |
|
MD5 | 37e9b44b5ff3ccf65c9b54b413a5f8d7 |
|
BLAKE2b-256 | f69fab0bf98fbbf4f1ee8751566b8fc6e1613c856c81f1a887736e6f2959db8e |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50308fcdbf8345e5ec224a5502b4215178bdb5e95456ead8ab1a69ffd94779cb |
|
MD5 | 37c560a5157bb2b46042c71ad6c9121c |
|
BLAKE2b-256 | 0619c30ba6a73922541a8bb37dec97546b7bbb28277e88ff31f3f3856c3aebc2 |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9ab5ef0718f6a8716695dea16d83b671b22c45e9c0c78fd807c32c0192e54b5 |
|
MD5 | 91eccce7940d2229ce713e4a1dd70bf7 |
|
BLAKE2b-256 | 1a32816f7fa43e1af0b6f43f224d0dbcc8204e7365a8e3f9eccd06c690d70ccd |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 192306cf881fe3467dda0e174a4f47bb3a8bb24b90c9cdfbdc248eec5fc0578c |
|
MD5 | 78c35f8bdaaaf49a6057b049c0efb11a |
|
BLAKE2b-256 | 5fe6958e5ccdfeeee3e984a505d66787b29fa557c56155358f0d4199a7cb6a70 |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba95abd563b0d1b88401658665a260852a8e6c647026ee6a0a65589287681df8 |
|
MD5 | 8b4ca6580ddc974c654ab5991d48796f |
|
BLAKE2b-256 | 8b7adeb0fe034b43157077d780099a81709bedc785f28096cac99cf051c13711 |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2953afebf282a444c51bf4effe751706b4d0d63d7ca2cc51db21f902aa5b84e |
|
MD5 | 55de7a11269991b5a875bab05c4d212a |
|
BLAKE2b-256 | 5faa84f77b251353ec0494fe5fa118fa95462f2edc9413e34f451a504e1f43e0 |
Hashes for pycryptodomex-3.18.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 160a39a708c36fa0b168ab79386dede588e62aec06eb505add870739329aecc6 |
|
MD5 | 97d67efe019c8d7e6c6964efd1c315f5 |
|
BLAKE2b-256 | 7c6ffdf4620511f30482915c88cba42e82b2ce3444499bfeba572c16abfd22e6 |