Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.4 or newer, all Python 3 versions 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.5.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a36d5a5b73e51d66e3f1da53ce00e56de860a9c529f2811bb8d95374d9da06df |
|
MD5 | b3d2c6b9ed328c52f1408f021c0b7f0c |
|
BLAKE2b-256 | b5fbdf3edb035ef894dad71d68a38437e7f9e363986a0130e8c81969de9ad596 |
Hashes for pycryptodomex-3.5.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ec5903197d256b4559ff5c6a4756c34219ec81aff92be1174681623ba1e6383 |
|
MD5 | 2534ed201ab9973bcda39e4ee30ac63b |
|
BLAKE2b-256 | c7b95e8da8b83e8bb067de4a3e0ab556b7e7955f0df3032a805361f463cb2cfc |
Hashes for pycryptodomex-3.5.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e378bd7a09257a7a9a58f7f04b088991cf23a99847e9f42d6f996b4e52a11c33 |
|
MD5 | 859b3d5b3f9a282615cff91ac531ca87 |
|
BLAKE2b-256 | d988a6b95e859fff6113d4bac72cb003cf6a1538c473da84cc0ddf1acc2e783f |
Hashes for pycryptodomex-3.5.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a02b1b17d7c86b12bc1d4ede75846a7971e7df6d75508cd0696e383c18cad4ce |
|
MD5 | 03869ea24d98830be75170ae73086f0d |
|
BLAKE2b-256 | 40677aaa8cddd5de6a940b3b0912c0134743800aa590f78451915e462d021994 |
Hashes for pycryptodomex-3.5.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67f6573ff84ce7f7ea8ffc01ba5821c15dc85bf43291e4f8e11d7b6e2d5f504e |
|
MD5 | 697f5fef10a9001ae02a6a3478c8d1af |
|
BLAKE2b-256 | 6d58e2f6a0e0f740b770add8a05282e2c3d0cbadd148d5801de6b1948c188d4f |
Hashes for pycryptodomex-3.5.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eac46844350302c93f3fd3eaa37353ee9e25cffcd1c574dfffb22de157ddce17 |
|
MD5 | 5bc69a01f881863f755e346ea7d701c1 |
|
BLAKE2b-256 | 74e2a279938978da7c1728e047372283ecaecb2c72500900883ba958c4e6ed35 |
Hashes for pycryptodomex-3.5.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82df0a7cda5c94e9e4c62fb8d6507d5418f6593c8ed1b40b538a771ca003b597 |
|
MD5 | bcc01dda57b3bac0a0f9c37fe3bad141 |
|
BLAKE2b-256 | 9266da40b654fd4b2518022982f6ad99ab01246c8225dc931d68271859d29385 |
Hashes for pycryptodomex-3.5.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 299a79efba6152ea438cc37f7349161e7bbd914f918342cad6316a4a5f29f2d7 |
|
MD5 | 55bea7c9cc24bb51062e59fa451d5742 |
|
BLAKE2b-256 | f43016a57e903f8b8f6a6b17e3dcc817e22993954c1aad9a04d5c89aaea9a53b |
Hashes for pycryptodomex-3.5.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0ca00abf69827e78415050780cf838c7af9f378e591611210e25a03d6d0ea90 |
|
MD5 | f13b4e974fbd7d65892f232d988de8af |
|
BLAKE2b-256 | a90c5315a6a7ebc09cc204294287150d1d1e2af62381ea76e29bf6ca3ed3658a |
Hashes for pycryptodomex-3.5.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d4c77f1d4273ae753e49dac5c916f2278b0dd354a0c5f2a29fcf88bbae4efa9 |
|
MD5 | 9fec9f4899bfa6ed08f25bc4fd941680 |
|
BLAKE2b-256 | dec41250f3aa96adfc2331a31948cd9aba6b7f294c8ca1750d5e638b83f2b868 |
Hashes for pycryptodomex-3.5.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a55e8fd69c84287b44e2c9c07eaad314e76680b86e873774314c27266728670 |
|
MD5 | 4f03ed72df0d0d91921e0e29c5b4ffa0 |
|
BLAKE2b-256 | 7ae1c294a0b21d486394c94bc88ff170c24d6f22ecf5611e754ae6a6d5b6073e |
Hashes for pycryptodomex-3.5.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f81caf3ee08f00a957fd074c33430e8781958c616e864c5a1e709fb954750bc |
|
MD5 | f3d6d90ec80fda080a5fadf69740ae12 |
|
BLAKE2b-256 | 3ff3a179025da9498926c02a15a49635a7e9256740596e38b6af9065a706a3be |
Hashes for pycryptodomex-3.5.1-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e75e7fe725dd5989e89da25a2fe7e3d35ed8123ac30eaae2f2340d0ba0431a88 |
|
MD5 | 8d8803e35f8780f6366a5b236e210f51 |
|
BLAKE2b-256 | 3392f88766a4f50689de40a74ed0c740c20df85ae0e27840750585fbca8ac0f3 |
Hashes for pycryptodomex-3.5.1-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d058decae88f86833a430afc0517df815d9efa4255b3a6d576c7fb305cb56d4 |
|
MD5 | cd2833197bfc5b6633718e55e5e75106 |
|
BLAKE2b-256 | 02bd9a30014e23a80f2194605a50a9209176849204b1f17832ec43912635f2a7 |
Hashes for pycryptodomex-3.5.1-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 563512542dcab3e95d8cef70e45cc5a43ef35ff84bc040c388b305015343e51e |
|
MD5 | c96b154ce0b11d98be3c1a728fcca3ab |
|
BLAKE2b-256 | 9c249a6acdec2422a0f8ee04cb8c44c279901315991049bb4bf02c66b0ea8a40 |
Hashes for pycryptodomex-3.5.1-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91b87c3abb24da1a980cb0f05e150eb0525235129bc5cb59277ea96860677f0a |
|
MD5 | 7723b6682d7d0a0f90c72f79b991208c |
|
BLAKE2b-256 | 9e708f1094a12650bebd39d4416b2706ae3d5fdd94885bf6695e72994f6a3124 |
Hashes for pycryptodomex-3.5.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e303a4a1b242d3277e8dea07ab4e3737d0d1ed122990c713d6f88b0dda10c378 |
|
MD5 | d2374e7779f9bddb39fb51f657dae25d |
|
BLAKE2b-256 | 9eaa74f73c69860028e52255bdf2eb8bb77f4ba7c8c736a8f0825b88e1dfc770 |
Hashes for pycryptodomex-3.5.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 729da9aa2b8ea0bd8e35bc89ecd1ff4e482e6e9c2275e2e19de8b68dd8156fb5 |
|
MD5 | 69ab6e383c11b63fbb0e901ab8e1a903 |
|
BLAKE2b-256 | 0dd8930f56ed19e6c7756968d3a84174834223548fbbcf31eff3450f8487a425 |
Hashes for pycryptodomex-3.5.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16ab612ca9164e971dc00f8fe895ac835e8bfe64c3174b368f80172ff5a98300 |
|
MD5 | afe7e47b4de7bdd166886cadadf9a7f2 |
|
BLAKE2b-256 | 4cfe0be66d767a9c7623cf6c7ce7cfe8e2a952f8c5acc037451cb19a0c8fbfda |
Hashes for pycryptodomex-3.5.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf2e6cf6e78c8e6d63eeaa9641cad5008a382af98f2dc25cb7c6444f13133df9 |
|
MD5 | be7d33470a8312471f7b00db75a85d55 |
|
BLAKE2b-256 | c0713db3771ac7e4a2883cb580c06477afa810a201fbb54198324f660d0e9ae2 |
Hashes for pycryptodomex-3.5.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7d836d6284c4734841c7c9d851be546650302ebca281de851129c22f1298ad5 |
|
MD5 | 493f6d1172edc93bb6248c02f44930ae |
|
BLAKE2b-256 | 5dd3848b2af3f5ba9baf7468ef4a0279995e979d7f9b301bdb34d1692759d030 |
Hashes for pycryptodomex-3.5.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f71dc2b91288cf4a164287858eaccdc7053bf5765ebc47c5188f94eccc35e80 |
|
MD5 | 01e284eff1d1473a82de5bdf7f711c8d |
|
BLAKE2b-256 | 6ed4065caefa8441fbc0a159c1fa305e448b533cbc10d1bd69d73729c80aef6d |