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.4.7-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c3822750ccc90a8b36e21410ac377a146067586d28dac08cdfd1654901c3e67 |
|
MD5 | 1169c8c7144e16fa86a1afb4dd325c62 |
|
BLAKE2b-256 | feab0609ae6c95fd023d2cf644b71cb965bb88ff146e2f041294603c0924bf07 |
Hashes for pycryptodomex-3.4.7-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 372e167ca5070ca0e66896e4937ffbc3aa602f3d294b1c41b2863b56950d184f |
|
MD5 | cad7fdda9781062684fd0f0e21418e67 |
|
BLAKE2b-256 | 70383418bc74479890e4b0f3c9ac72e683a32be6076a0788b640edc441df46f6 |
Hashes for pycryptodomex-3.4.7-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c647ca7cfebf1bcb30578ee74c7f72e00d7e9c1be262a678eaf0a3230ee4abc8 |
|
MD5 | c1309a15f47ac1ca086b13e16fdf95f8 |
|
BLAKE2b-256 | 1e2901d16db97013c5f80b5d5b644f9f54153d298ec7f3adf2b9c5ca23d9a7d7 |
Hashes for pycryptodomex-3.4.7-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43077fdfe959edb1f4ffc9f967709205c3b40aea8a80c38b1fdb8b1018e8400e |
|
MD5 | 0b86e9b0b16a7368cf7ab5ca0105937d |
|
BLAKE2b-256 | 3f6337db0d7ef257ef57a4904ee36be32d0260c2e2504c4243e92f3d162df0fd |
Hashes for pycryptodomex-3.4.7-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f927ff2d68670dc69e912edf1f2f6b671d8896430e7f6bdd82ca15866b875d62 |
|
MD5 | 6b0bf34d12ed846836b26345837c4cd9 |
|
BLAKE2b-256 | 532d1f787de5060e438955ac109296e54a290f523e97227ac773693ee5a778a0 |
Hashes for pycryptodomex-3.4.7-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17a65300f815f7dadc3d52e782925a2c83db579c96e3ab4bd3db2b05a26525ac |
|
MD5 | f9794df7299626ce57f8883d3e81074c |
|
BLAKE2b-256 | 240d8b487dc15f8366d18fdfd628be4361f1223cb93725dbb98192b13e7d96de |
Hashes for pycryptodomex-3.4.7-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1733638c5a61a0646c318dabb9022f60e72cd479269a6cda4388c37133d8f778 |
|
MD5 | f28d59c089fe4510a0bc6c7bb715505b |
|
BLAKE2b-256 | 6895aad3dd809bbeea6896102b79c2c591268022f42d3841deb058050b9ff851 |
Hashes for pycryptodomex-3.4.7-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3292903255db0f15cfcd4b0581cadabaf716bff8a86e5698bc646fcb99e67778 |
|
MD5 | d27ad4061e6e56838e487511408ecb93 |
|
BLAKE2b-256 | a0d74e6fb6ae963f26a8baad3b10cade499000acd4afca04de58c75afbe76440 |
Hashes for pycryptodomex-3.4.7-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede86acf5453c4d385b1fe630a0e7baef058efbd7cba9282f747d241650268ab |
|
MD5 | caf6ae485a8f66f708b93ce15fb022fe |
|
BLAKE2b-256 | 95970727136c44d672ba334e950aec3cfa2cb0297897efa1fa5ee4217142e3dd |
Hashes for pycryptodomex-3.4.7-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f9d8d74b3001007e5cd0975280aa8857dadda4cfc7c01710601330d6b09c648 |
|
MD5 | a5f611bd2aa00bde49a7c8775bffb832 |
|
BLAKE2b-256 | 3404a6f8a3fd76b96e4beee005877c4147da819e146777f6061929a1a80aab2c |