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 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-256 curve 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 pycryptodomex-3.7.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c58a324a8eb48f767abe8c906295d76e04330aa0a03d99dd58d9a42938ee0596 |
|
MD5 | 7c5db44c3011bb860c28e7b9eaff7e40 |
|
BLAKE2b-256 | eb78adcf34b9532e219f49c0fd00308eae330fd095f67876cfe97a67c7a8e78d |
Hashes for pycryptodomex-3.7.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 195b6540f31cbe3dc7bf3877177bb4fe1a145ce02191efdd0cb6399bff275d4b |
|
MD5 | e1703e18dae3fc7c7d879e697c24bc8f |
|
BLAKE2b-256 | c82541f79d2e82bf5cc7776368c5cb227840f98734d8f2f5f1879ae9c2a37cc7 |
Hashes for pycryptodomex-3.7.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f79650ec8812b01f20aca503763b93b0b1b347423ecf9fd3a9ebb611bee84079 |
|
MD5 | 0707c1d7c17d78a83346a1e2b3ce6f55 |
|
BLAKE2b-256 | 856c75009af6e56a042fa4565a048f4a4b7cad836de0eb591f7527154f7151b1 |
Hashes for pycryptodomex-3.7.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a67f26365ddad6ae53c0b3800edce16d164e675ee773de31c110624e63736d8 |
|
MD5 | 29f25974006b86bc40d1e50dd8084ffd |
|
BLAKE2b-256 | 30e79f54b9ca4a02d77644d20cdb8bbc1239810bab80af0b280488679a9524c2 |
Hashes for pycryptodomex-3.7.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec51ea9f11b11df2719a01ea1cacdcf80858542a93f530a25a3bc742d0fe2f4b |
|
MD5 | 0d37a75cd2534bb2c3da5b789aa10e0c |
|
BLAKE2b-256 | 1f842fcdc9266816456189e61bc9443b2f34d7f3d5581638115aa8a828099120 |
Hashes for pycryptodomex-3.7.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bad0c66c42d16e81eef2199b3c4fb78c873f54c7f9d156e69664e2138155747c |
|
MD5 | c33dcd719c6c04281c3626aeaff80470 |
|
BLAKE2b-256 | 1446452a2f566ab5d6d2af282c3761cf1e418400887cdc9075a08e57f51f0a7e |
Hashes for pycryptodomex-3.7.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13ef8e8a26a9ac7ae84616e9c500ca0cf721d3725d740124f68dda1b58e7d408 |
|
MD5 | 069be36383cf37fc8c76c9ef3db5330c |
|
BLAKE2b-256 | 7d84568da539b9d13ae81d53f76cc08df2fd593512a0e00c01df57685912d882 |
Hashes for pycryptodomex-3.7.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d498731d66f9b9ad978c9a8018b0c6cfc4081e202a79c6e283ade7dcf2a72c18 |
|
MD5 | 5eba50484b9c2d128542ba93291d879e |
|
BLAKE2b-256 | f7602cc531863872cfe15e92a4852fd4016da77b5f33f5c6d470f4e6e6940e1b |
Hashes for pycryptodomex-3.7.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d516746fc25daff1c5e84d3f816d134d75a10e3551ffac92aa957a75b6b0208f |
|
MD5 | 546e90dee5db5953854c47be6cc46833 |
|
BLAKE2b-256 | 329c06820c201f2b431f5e249c9dfc2773ecc74a2f81d6b7856a4c3e6874495a |
Hashes for pycryptodomex-3.7.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77928b02c28adb4d1d637c609aba380d890fb40ad63c58c826bef871c84cf488 |
|
MD5 | 6ce2240c4e3de97115098c824932b897 |
|
BLAKE2b-256 | a77aaa36384188128c4f97d483d620267509bc19fee9026e1dbf5ea5337081cf |
Hashes for pycryptodomex-3.7.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e08238f8d146caabf9d80cca09dd31323a333f74f62323aabd075e7effbc45c |
|
MD5 | c4ec89db287ba45552244500422e41c8 |
|
BLAKE2b-256 | 94f66019727de71e908320c8aae41c8eabb19aa5f9ec47e961dd8e50efa4f2d4 |
Hashes for pycryptodomex-3.7.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2f33943f91c764f2b27a1504cd3ec2c075deb7d1b8fcc3ab4d575bede7037a8 |
|
MD5 | 12f36ad44958654192ba65bb7d16a376 |
|
BLAKE2b-256 | 6da567705ec45f6b012bb5abe45ae35dad21641fc0f508f59180aab6a938bb8e |
Hashes for pycryptodomex-3.7.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c384a85bede5396eed50f6c0374d8c51490fc10fdc65dffc8e613b57e5ab0ee0 |
|
MD5 | 09d15f05b349d1de928ff5542ff98a0f |
|
BLAKE2b-256 | 95565770625c2a89c499f56057b372f405a349854a599d81dbda4c67ad4cb22b |
Hashes for pycryptodomex-3.7.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b95b14e5baaa4ca77ecb7a3d0f85fd13a8e31ada83c5a2bae5652d446414d63d |
|
MD5 | 155cffeaa09d52a8459d0a28dec03ddc |
|
BLAKE2b-256 | dfa80215a621520127de25a10ad22ca9adfd3963c946c81704bf85c26fb72c7a |
Hashes for pycryptodomex-3.7.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cd21c1a4dd0879dc3b289afeb0033a9382da7d0a50cb9de8d0e59c1ab0977a7 |
|
MD5 | e238e7b04726b88990845f52c84116ef |
|
BLAKE2b-256 | 3151a003f276e23680f46ebe0531d0b97d2f9f255765ce92f4c9395e8e6d1727 |
Hashes for pycryptodomex-3.7.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42b2eccccb9da547e0ff140784037ea31c1a37012488706b51cbcadb885d2053 |
|
MD5 | 07b53cdf0bc7b9148f5b094d36ad9a04 |
|
BLAKE2b-256 | 131299b3b493e1a28deed5f3b3beab88771d9bd4f9bca2a75fe53eaf9bd9d97e |
Hashes for pycryptodomex-3.7.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bb7686dd46d40cace053941638d2db4f9d86a50a62d6100f14157162e56e82f |
|
MD5 | a87998f4151774e16597ef3bb0ff2178 |
|
BLAKE2b-256 | 888bf47e44f65ce983d3d86079bdd5e5608cc1259ac36e4303a595b389f7ca96 |
Hashes for pycryptodomex-3.7.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75186284b593df724451869035bfab4a03b6b388ed6eea284ad7fe84c9b64ea0 |
|
MD5 | a732088c30904fc52f0fceda43526dbc |
|
BLAKE2b-256 | a96ed5ba1ca1399a6787b711733c14c6a95b4b397aedab2924d9e2de6cafb79f |
Hashes for pycryptodomex-3.7.2-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef2792281138a29e54bdd7302fdab72be140192485dc622bb9e7e9a6f9cee4f9 |
|
MD5 | 1100d0a1bdabbf7e1bd68cf9bdd118f9 |
|
BLAKE2b-256 | 0702e85413c17f68e032e18f95d87c0dd36a450013032613488005356a61350e |
Hashes for pycryptodomex-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7efd0ac8b38dfdf8b2d387e84b007c843a66de9da437a950a86caa2d1437e1e |
|
MD5 | a0a1b26edb23c2fa8514c25955128e66 |
|
BLAKE2b-256 | cbc81e8271f8b8a3a543e09e92ba9b8ceaa355416a6dd8e5c0a20aeaf3e87939 |
Hashes for pycryptodomex-3.7.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 329ca5986c5e5f6a60edc3ff8b70c28d6cb259491e35e44870db6a8d92430e50 |
|
MD5 | dd5fd8d12319c8bb85bc923242844da6 |
|
BLAKE2b-256 | 1505311386a6742c6fe538e32bf0ec232df135c3320fb016f428366ea7228d2e |
Hashes for pycryptodomex-3.7.2-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b2817bd02dd7dd36f223917f9bcc90d658bb66124bc596d7e3a0c250509acf7 |
|
MD5 | 3cd26e90b5977706e1e2d0a13385503d |
|
BLAKE2b-256 | 56cf9fd4091104203bddaadd1d5def8d9ef0c33846c686254927870fd9372b42 |
Hashes for pycryptodomex-3.7.2-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b765870e17bf82a992f2ebb312207da76dbf8694ce865fee847005cce9244e4 |
|
MD5 | d5ece6dffcf42dc0b7adfc36f0242184 |
|
BLAKE2b-256 | a30257da5128b35eb8703ed4a39c650fdcf70ab933476d31094e1c61a38369f4 |
Hashes for pycryptodomex-3.7.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09f433a6ca4b96a4c89096af9eaa20c5d5e9029a03266f6a80062163d2042030 |
|
MD5 | 8edc36c82137b7aaacdd8e88764bafcf |
|
BLAKE2b-256 | a6e0e56e31d30f78e0632d7c7ce482fe452a115e01ffda3586a79cc5662f6527 |
Hashes for pycryptodomex-3.7.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83b7fe71fb9d27ff12df9dd3f57ea84153a86f45a674ee2b4763aaaf8ca84988 |
|
MD5 | ca7f610ab56a6a72bdc379fa6415886d |
|
BLAKE2b-256 | ccd0ffeade2362f1b7e74aaf3ab166be57a04a3cf96a00cade7add1257f26c07 |
Hashes for pycryptodomex-3.7.2-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 938af93204c93d1f576acdef970e95dfd0bbe40133f4bbf73c4b12b67f7bd4ed |
|
MD5 | 50c56ff804548dabc3447e8da4a13efc |
|
BLAKE2b-256 | faf22b5aa0aa5f57bd61367fada6f4f8fe119b7863958977708442d4ccc533cf |