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.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abd4c26341e6cde96e469176c22a0985f53146f1adcabd9c924253fcdea15125 |
|
MD5 | c51e5d4c31bba1ea831ccd97965b25b0 |
|
BLAKE2b-256 | d2e0759ca73bf16fa59954187bd4ba6b5bba73fc32a5b5aea9ebbf82d48b1511 |
Hashes for pycryptodome-3.4.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09629fa21c21cf4455dfa37056fc6f5f262dc6864981af6167b03df50ef3bd1c |
|
MD5 | 72dbf75e02d5a41fa77635973e314fad |
|
BLAKE2b-256 | e4e40cde4c3f4733c52bde9eaa5d5a177029d1cb04077460e0a1e1375b14d987 |
Hashes for pycryptodome-3.4.4-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e49c593b80d2cbf8c4625faf8de1bedfd9ac4e414a47f462a990c410a60274d |
|
MD5 | 6df7716a9cce299d5f8d88dc93f03c8e |
|
BLAKE2b-256 | c9b0d6814a5bd1ef3dbc0c2c117e2462666cd920e15159cec46a170af71117bb |
Hashes for pycryptodome-3.4.4-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67d1d17926755c8b3626f3f806a7282f19c20a858617ef60851e16877cceda45 |
|
MD5 | 057ee42fedd037ea95700b071908e53b |
|
BLAKE2b-256 | df82db6cb5ceffd8d89a803e8dd3d9959f11654360c0098276d94dacc2f17159 |
Hashes for pycryptodome-3.4.4-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92c508f98ee4e9a9b2de6d2cd25511fe80b094b21c0c00b927cb39e0cb2ab6e3 |
|
MD5 | 6283d99836ed5503400e156ad19cea24 |
|
BLAKE2b-256 | 6e6a46e9361c54c7f701855a06242fb148f140e8558c69d09d0e9028189b13e3 |
Hashes for pycryptodome-3.4.4-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15eb7250997c8c756eb99c1ae0c7f73da7860bdac2e97a17782c059c57913eab |
|
MD5 | e686b5fd0a8fe1af5b733609219e0037 |
|
BLAKE2b-256 | a3650c3b7eb92fc39896257fd88f71fdb26e0cafadbf5b51746a6504700c654d |
Hashes for pycryptodome-3.4.4-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38e96cc198749d1488e9886c3dad33a0b117174dc74beaa4020dddef2eb73f68 |
|
MD5 | af07b8edd0289768a262b5f436d56822 |
|
BLAKE2b-256 | 4d27961103ff2478c5cd80fb52a49e0b45ce4f93336f835bfb426c32efc5f1c1 |
Hashes for pycryptodome-3.4.4-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9c2172c48f3f6aa8e17e5e72a74e67181a6c3b3f44f329535ef0b55b5427f19 |
|
MD5 | 3b34ea2d41f5d763d21dd19bb90dfaa1 |
|
BLAKE2b-256 | 8155a4997d38edeeb0fdf980220ed1f8b868e15a5efd55cb88b711188c023a42 |
Hashes for pycryptodome-3.4.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cfa44ce78e0fa7ab2bba228eb940a80adf4525070d5d21915ad8e08826639ed |
|
MD5 | 21d1260a267af0a7fc562d9dd4fd169b |
|
BLAKE2b-256 | 7815ee4816e105c799b4dfd6edf2191f5fdef44006e5f60b5c3b251937066842 |
Hashes for pycryptodome-3.4.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ec757d72787a1ebf7f4937f8595b58eee1beb454194376586342902860eab4e |
|
MD5 | 90e5cc74ffeb75dc97d8a4009a796dcd |
|
BLAKE2b-256 | 7e1d10bfe2c7837e04ccc035e5b5518fc544a1d5dda15f81a23be7dd65e8e4e1 |