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.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 986080858b5c9389bd38d0f199ba1835f17a11f8ee638c7ee079a803a26d0429 |
|
MD5 | 3498855b6c5299aac93e2288d5b66cf2 |
|
BLAKE2b-256 | 97a0455d32a805e40ceb3440f49ec6ce7a046094feb80318ef00d1601d63377e |
Hashes for pycryptodomex-3.4.5-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4a899ceed3fd3b745245907931845fb154741ca867e72f1e757c7c12dfb7c8f |
|
MD5 | 93f3071b9db182e589df2b0cc598e371 |
|
BLAKE2b-256 | 871a929761d96487953fa074660f2c7ac7b7ec1d4858bda1e126552f0897957f |
Hashes for pycryptodomex-3.4.5-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d95daf3df72d87b173308f58d9c9012422eb0c2474bb8dea7b3e1fee77246592 |
|
MD5 | 777728352f2cd98f6264bb484a7087e1 |
|
BLAKE2b-256 | 162ef3b6f8558f5211a4c27e0c66b74eaae9cb0d10d04cc991ccc98901262317 |
Hashes for pycryptodomex-3.4.5-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50f0134252964bd880fcfb93fd4894ec6fc5073173c2b96964e844174d8163e8 |
|
MD5 | 4985feccd848c5a0410f519747527707 |
|
BLAKE2b-256 | a5c24ca6707ba786559cd22fbe4aa873e07fdb6dac171eeafabfdadff9032df4 |
Hashes for pycryptodomex-3.4.5-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a597b031e1f87a914ba5626631e957c2a90a0471994924170ac5cda424c6f784 |
|
MD5 | c91f74fc6100cb458234c88ad35bc5e0 |
|
BLAKE2b-256 | 542ba36a73a1307b8bc746bd8937c7bcc23d894e8578813402627cec8381ddb9 |
Hashes for pycryptodomex-3.4.5-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c28f902820b86d8dbd1ac9801ddb8bf9681eb6e107d96191b3f7df723f27cc4 |
|
MD5 | cd21bc09212d647e443ea7e6871afcee |
|
BLAKE2b-256 | 67ec2766d713e6b13f68d2887b1e248b3cda5246d721886dd0be68d17960ac83 |
Hashes for pycryptodomex-3.4.5-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fa0c94cec30feb2c368f772f9e75af1b16325791ad8c7ac6b756addb0ec3833 |
|
MD5 | f8c33b8c8919512ea722d1bac2483e3e |
|
BLAKE2b-256 | b89e8764490bd67cdd6bd247fea0b0d1aafafb503dbe2c73008d2516ae9a4639 |
Hashes for pycryptodomex-3.4.5-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a096f06e8c264f080e4ee137118639dc4cc5513e3980ddd165d576d7766356a5 |
|
MD5 | cce56c38b2c35729cb1863f143a3e8a6 |
|
BLAKE2b-256 | 55d5ae5a6d5fe788a8ab939bb4c06f6a2e32fdfcbf96700e4e36358009cf7530 |
Hashes for pycryptodomex-3.4.5-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29d1362236124ef71ca48ba82fe4932d6c49cffa03ef612532ebb0d88d303a78 |
|
MD5 | f4c8419940f9f6804a34bc83e9cf5ad3 |
|
BLAKE2b-256 | 6ce25c7af65997c324d3ba1f74af23754ded8c5fe1e09d1a7974c51f9dba9b2f |
Hashes for pycryptodomex-3.4.5-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cb95a5cc911dc7e6ddff1e7123e7484efd123ee94f50be3e49528ce1abc520e |
|
MD5 | 26c355ef2038e7d1fbf72cffc7436be6 |
|
BLAKE2b-256 | f0941ae0172fe9a47d43070e7b46644f24fdf71c92f858e47dbd7f404738d905 |