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.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4a203077e2f312ec8677dde80a5c4e6fe5a82a46173a8edc8da668602a3e073 |
|
MD5 | 1bd738b0bbee1ee7e9b046a7687a14c2 |
|
BLAKE2b-256 | 7485f8e54ad879a881c5f4d6befffaae8263a28b56256b8c5dd47f4486de220e |
Hashes for pycryptodomex-3.7.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ff02dff1b03929e6339226b318aa59bd0b5c362f96e3e0eb7f3401d30594ed3 |
|
MD5 | 904ab586b019f749d6db2fae4d6dac90 |
|
BLAKE2b-256 | 60c9eb0a960dfa277ddcd3cb76a6d47dcb3bf4cfe0dc54164d535fee6b903294 |
Hashes for pycryptodomex-3.7.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a33b2828799ef8be789a462e6645ea6fe2c42b0df03e6763ccbfd1789c453e6 |
|
MD5 | 4fa5ad3178e03dc754af4e565731e0a0 |
|
BLAKE2b-256 | 439aa9e54cfd1a175349a4f9679e37f6a77346ed8a4e04604e47536b01a368a1 |
Hashes for pycryptodomex-3.7.3-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3213037ea33c85ab705579268cbc8a4433357e9fb99ec7ce9fdcc4d4eec1d50 |
|
MD5 | 275cc78bb4c6c900a8388d1cb5f6136e |
|
BLAKE2b-256 | d6cf87e8e070ca475371b9dbc0353a0fb1dc9824dd6c86ffa129dcd797dd853c |
Hashes for pycryptodomex-3.7.3-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 989952c39e8fef1c959f0a0f85656e29c41c01162e33a3f5fd8ce71e47262ae9 |
|
MD5 | 1d3a78539865d238fc797b0f4fbeead5 |
|
BLAKE2b-256 | 7f08b279ed20684fae41cbada64c9b0576c436e9c63bddf47eabaf9ddeb9779c |
Hashes for pycryptodomex-3.7.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87bc8082e2de2247df7d0b161234f8edb1384294362cc0c8db9324463097578b |
|
MD5 | 5f1e8f7a169dd7be9318b13756ea6eed |
|
BLAKE2b-256 | 3cbbf9941cf85f8dcd6b155db86af00bf4ac902ae17a5d68a3009578495bc85a |
Hashes for pycryptodomex-3.7.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 463e49a9c5f1fa7bd36aff8debae0b5c487868c1fb66704529f2ad7e92f0cc9f |
|
MD5 | 7d1aa4950adf70367f2a04464d2e26f9 |
|
BLAKE2b-256 | 79c4c7412a4cdd8b20fd0a09b62ba66259e59bd2ec26f62d1309a9ca75e76bda |
Hashes for pycryptodomex-3.7.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 310fe269ac870135ff610d272e88dcb594ee58f40ac237a688d7c972cbca43e8 |
|
MD5 | 8f607f310afa624fa885054d910b051b |
|
BLAKE2b-256 | 888c17692d31b2a5cad6369582921b3136c9505f127e022569ac671b758f1514 |
Hashes for pycryptodomex-3.7.3-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22e6784b65dfdd357bf9a8a842db445192b227103e2c3137a28c489c46742135 |
|
MD5 | 70732a68e5538e53a51c56ef23df241a |
|
BLAKE2b-256 | c2bed2a8220d603599fff74162d709720ec478cf83552185febb5d6be6258dd2 |
Hashes for pycryptodomex-3.7.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 456136b7d459f000794a67b23558351c72e21f0c2d4fcaa09fc99dae7844b0ef |
|
MD5 | 0c217e3c29e7e15c987b017c5b843335 |
|
BLAKE2b-256 | b7cd8bbcce9e2be32a458d952108f7dd52deeea4e853491e3be641a4ea75b79d |
Hashes for pycryptodomex-3.7.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bda549e20db1eb8e29fb365d10acf84b224d813b1131c828fc830b2ce313dcd |
|
MD5 | 70179920ccc0273c03bdedfe90a4785f |
|
BLAKE2b-256 | 1998ab125ec91b0ec58963ce8d6187b755dc824d2cc9a34ad9be3888065fdddd |
Hashes for pycryptodomex-3.7.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2edb8c3965a77e3092b5c5c1233ffd32de083f335202013f52d662404191ac79 |
|
MD5 | 6637e75ce70e5b1f0a4a02ca59af1ee7 |
|
BLAKE2b-256 | e8ce09437ac1b55ec98ecb40252cc0b7aef9b43d2dd9c59abb925dc8493a821e |
Hashes for pycryptodomex-3.7.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f42eea5afc7eee29494fdfddc6bb7173953d4197d9200e4f67096c2a24bc21b |
|
MD5 | 8f6ca35c8550a3a8b4f2f8587a1e445d |
|
BLAKE2b-256 | 0d6433c7f0d595427dc39ec6a66da0fc1f0c155cced05fc79c0119ee0e36ba9a |
Hashes for pycryptodomex-3.7.3-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec1132d878153d61a05424f35f089f951bd6095a4f6c60bdd2ef8919d44425e |
|
MD5 | 5e24efb96be44315bfe62465650943a2 |
|
BLAKE2b-256 | ac728270871998142ae1a4fe29ed52182c92aa732fe906e2fb0b7fa2467a1305 |
Hashes for pycryptodomex-3.7.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2090dc8cd7843eae75bd504b9be86792baa171fc5a758ea3f60188ab67ca95cf |
|
MD5 | 3c6cc185302bb8f3860bc8d7c04298c4 |
|
BLAKE2b-256 | 2d2b080b3f8900ba095fe30d373562e55f194c7e9802ae5afc65aa61407fc910 |
Hashes for pycryptodomex-3.7.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b1db8234b8ee2b30435d9e991389c2eeae4d45e09e471ffe757ba1dfae682bb |
|
MD5 | c24920be527559c0946ef51144104a31 |
|
BLAKE2b-256 | b84b1173d3e53a9588bbb98cfc039418cd82402a96f73fcc3da60a32dbd241a5 |
Hashes for pycryptodomex-3.7.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8df93d34bc0e3a28a27652070164683a07d8a50c628119d6e0f7710f4d01b42f |
|
MD5 | 57d96f3deafe7971b0704e7256f026c7 |
|
BLAKE2b-256 | 6a9f731aee07649cb99fec77382911241c615d62cc07a243a7b2d32a4ef66437 |
Hashes for pycryptodomex-3.7.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1ab8ad1113cdc553ca50c4d5f0142198c317497364c0c70443d69f7ad1c9288 |
|
MD5 | 2a1fb41360671d79295588f1db47fc24 |
|
BLAKE2b-256 | 687c1cc5d97389ba540553f52c7348f800fce28553d08282d9e62eae72b9ac12 |
Hashes for pycryptodomex-3.7.3-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec8d8023d31ef72026d46e9fb301ff8759eff5336bcf3d1510836375f53f96a9 |
|
MD5 | 63bdcc70d7907cd6a80f118bacd77b1e |
|
BLAKE2b-256 | ef559eb41d3cc7ccc05106b5bed11073b960edefa44f475f9cfbb00f431ac822 |
Hashes for pycryptodomex-3.7.3-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba27725237d0a3ea66ec2b6b387259471840908836711a3b215160808dffed0f |
|
MD5 | c0b9ec432a79de39f57ef9cdd34e6ec0 |
|
BLAKE2b-256 | 2e5edc4f2f66c2bfd8dca23167cdc3026d17577cd3c7615cc8580d59a1a1929a |
Hashes for pycryptodomex-3.7.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dce039a8a8a318d7af83cae3fd08d58cefd2120075dfac0ae14d706974040f63 |
|
MD5 | 14e25e455aa4e3e6f483e3c6223604d6 |
|
BLAKE2b-256 | 8a300536d0314ce83d3fc3288392758b3af85486b42579bc23ad27902424cf47 |
Hashes for pycryptodomex-3.7.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6eb67ee02de143cd19e36a52bd3869a9dc53e9184cd6bed5c39ff71dee2f6a45 |
|
MD5 | 28604f99ccb785aa4f7b4d3cefc1a27b |
|
BLAKE2b-256 | dc4262dac75f1721ad85d9b38bc5e848b3726aee971858d6885b6b44015b0df0 |
Hashes for pycryptodomex-3.7.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1210c0818e5334237b16d99b5785aa0cee815d9997ee258bd5e2936af8e8aa50 |
|
MD5 | d9a52402dfb371df2775dd59a17eefe9 |
|
BLAKE2b-256 | 4fe32657b599d6c81263bb518dffee3eebee073ff6cfe99fa4766bccf9e196ca |
Hashes for pycryptodomex-3.7.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b83594196e3661cb78c97b80a62fbfbba2add459dfd532b58e7a7c62dd06aab4 |
|
MD5 | 92bc13bffc75dbacf0ee3b80a6ae3d88 |
|
BLAKE2b-256 | c7fe545292b3f18da00a8f2dfc2f063defa4328b8a968271e1dce4bbac5f86aa |
Hashes for pycryptodomex-3.7.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ece65730d50aa57a1330d86d81582a2d1587b2ca51cb34f586da8551ddc68fee |
|
MD5 | 8ebd38699bd1cd8de4b02ea1e023d6f9 |
|
BLAKE2b-256 | 6d31f40eb8e7a79fc51f4414f474b2be646369b51812eb593cd4caf4d9b4d32d |
Hashes for pycryptodomex-3.7.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed21fc515e224727793e4cc3fb3d00f33f59e3a167d3ad6ac1475ab3b05c2f9e |
|
MD5 | 4c7ee9c843c611e7aefe6a16c500c88a |
|
BLAKE2b-256 | 67107b8f56b4eff7ffd2650fe59518bff07f4126bcbaafdba84b0859f519f1a5 |
Hashes for pycryptodomex-3.7.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a793c1242dffd39f585ae356344e8935d30f01f6be7d4c62ffc87af376a2f5f9 |
|
MD5 | 28aa6bf316efe4a82caac8532bec2d4d |
|
BLAKE2b-256 | 2433b0398a8ac08c364667ae4be631fa9b80422c55985baba93858e7255eb81a |