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 pycryptodome
All modules are installed under the Crypto package.
Check the pycryptodomex project for the equivalent library that works under the Cryptodome 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 pycryptodome-3.4.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e225c388855b2b6b21ca9af7e995eb93fb560c6aeefc132181227515224433d4 |
|
MD5 | 47fa34f457493cdd190337c62aefcea1 |
|
BLAKE2b-256 | d78278766101e8d13d699f2059ab51f506d7ef0fb8e5e0e25b833ff2106cb40a |
Hashes for pycryptodome-3.4.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbec659a7997bfbc8a8dfbdb669edd31ec68f5c4bdd3b75744fe89b1285f46e0 |
|
MD5 | 55bcef8ae49bf881ab7870ff74f64ba7 |
|
BLAKE2b-256 | 15d448db4567e2e6b381cd1b0aebd1ebc2aadab8cad3702c964d5e6bcfad76c3 |
Hashes for pycryptodome-3.4.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07a5c3a0112681eaed56c179ab55dba1998c13a83a3eb3bbb715b4dafd181151 |
|
MD5 | ac1806f02e7e5db0775f13fc24a90822 |
|
BLAKE2b-256 | 19678c248c622662b5dd60469319d7f268824a6b2d283f877e629dd2293dd3aa |
Hashes for pycryptodome-3.4.6-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03ed76c10948f8aff074fbeda8d49926ed58bdf45a0a99536d2c62caf21559f3 |
|
MD5 | 91b0718812b2f829c2efb1a6b56bfea9 |
|
BLAKE2b-256 | cb8e958a25123ecca3b6239a28a474d279aac5076b130f1517e713e67d61cc26 |
Hashes for pycryptodome-3.4.6-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3942292ba9576e9609e3d68b82f16de8f1ab31346df9b9f146c32e23dd17e234 |
|
MD5 | 15ddd6b5a04965911b2a4cdfd35847db |
|
BLAKE2b-256 | d7667fc352704ae98453be4b45e3776b617bf56c54c9309b12d82c5a9e42cfaa |
Hashes for pycryptodome-3.4.6-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78f67dee479cdebd87745bf9399f2a2b883eb43e09a54a5ca3889c445b3b975a |
|
MD5 | 36145b61b3c45d0c4f587cfd1ade9eb9 |
|
BLAKE2b-256 | 92847fe66f0c59ffa528348bb251061ce0f8c3e7a6fe093719543a98bf1ee6b1 |
Hashes for pycryptodome-3.4.6-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 966cabf5da7d1943a52d37df84f2885a2699b5bfe1203d9f12ba871aa965eabc |
|
MD5 | 221c3eefb957c9af60a4d6032a5685be |
|
BLAKE2b-256 | 36a302291a93c6c10d2554bad6c05e9e7a88dd5edbfe0d4242194ebd9bde3867 |
Hashes for pycryptodome-3.4.6-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f76f89292c2825182c7b89b0ea8b6937b0c712a59e4f1502d438df2802077cc |
|
MD5 | 23022504340a25cf513f36920b0991b0 |
|
BLAKE2b-256 | 8d7578a81993be2cce3c5f8acfaff45d2533a18799ed8a5f61b2a35b120f0233 |
Hashes for pycryptodome-3.4.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9da6fa2364e261b5fb1cace99d1311990ac7c278a5227cd2e0ea46015f9ecd1 |
|
MD5 | ea525b87f7068a4c97b023441b92c554 |
|
BLAKE2b-256 | c00fdb216abe73faeac54b75134ce518f29365fe15c9a8fc5c4d70572ed22088 |
Hashes for pycryptodome-3.4.6-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfb3bf662c039cb4bae9fb1e8dcac57bc42db0a655375ad6e61f87ecc1c52b8a |
|
MD5 | 67f020645a2040c9f8cc413848717a1f |
|
BLAKE2b-256 | 0d2349b904b3f5ca72acf008ab1bd3626667317f76121ae5fd2281e5ebd87be3 |