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.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66e121c3a981800556fc7c5c14778bb2aceb4a606c574a0486b4f157eba9cff9 |
|
MD5 | 3b23d7d39641d81f5e45408ea6557350 |
|
BLAKE2b-256 | da5cfc36c78b591d330c17aebc422e5be23c1b2d4e6bba2f67ecfe482ee414b9 |
Hashes for pycryptodome-3.4.5-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5657b7b67ee05bfd6a35ff0f9c48cb8c58c293397f745c378d932cff6dcb9208 |
|
MD5 | af9a65aa53a8cbfee717b4073bd2d524 |
|
BLAKE2b-256 | 4a4cf9d4a085c89e453c6408793ef0967914484962389f128aac78d41461c4ef |
Hashes for pycryptodome-3.4.5-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcda696252e4c33f19bbf013ba2e43c96aacacfbe01a71a24d38e51abe4ef38c |
|
MD5 | 536820693e2d362c48fc43a731d18035 |
|
BLAKE2b-256 | 371ac609f80dce3bc54f7d9378f860ae2bb2f36118e92ae205caa40f766fdfc0 |
Hashes for pycryptodome-3.4.5-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 881a9a87371a212b6a4eddd25af094bbad4789a90620aae54404e374606bd0c1 |
|
MD5 | 83185d0223e27656d553618cc7af76f4 |
|
BLAKE2b-256 | 545c6ed0db73d2be7a993c6e400bab059ae82213ca5d05bf4d6b18613fb3d83d |
Hashes for pycryptodome-3.4.5-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d26c32c326283840dd4acfb5eabfbb61c2411f5e56bb6c67830a5cb337dd5996 |
|
MD5 | 9ebf5bc2a18b4022759d1fb9aa1dd08f |
|
BLAKE2b-256 | 393aca501eec6dde6aac8d730bbd11f5b24320206bed844224b605c669ff271f |
Hashes for pycryptodome-3.4.5-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e7c05631930cce8b92d1761b28985d678900347f4425dd3c5406b163adf3949 |
|
MD5 | 645e0676cfb363e41b9aa007dce8b585 |
|
BLAKE2b-256 | b022333b9ea7f2ddf06526bff9747abc848d64d80b38782f5bcef26e89a28ca5 |
Hashes for pycryptodome-3.4.5-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 885b2b822421fe8e90695785406216a7e75d61e5fc06113f066f208832bda2bb |
|
MD5 | d6b31bd760fb0ef951f482085f012a96 |
|
BLAKE2b-256 | daefc761ed6ae1484e93dfde4702890e8e500b687ca2b7ed806dac73d9e281d0 |
Hashes for pycryptodome-3.4.5-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2039b1d283e1167ad5e6f7a39626ae1ba2bdffb99344b5c8da02369367846dba |
|
MD5 | d38334595d68394278b6d417127037da |
|
BLAKE2b-256 | 6026ee413dfc73cdb5e95de592ee64b3750817309a456e8bc72578712e408ce5 |
Hashes for pycryptodome-3.4.5-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13705f6f2c29fb7e34ebbcf592664d433ba5edac675dab4dc88e5eac8012ebbc |
|
MD5 | 1537a23e5d4990bd86d113bb1eb86030 |
|
BLAKE2b-256 | aa58ec26f5ee1929d855091a8cf3bd55640d2f73b1438fef5ff6b0142db59ac2 |
Hashes for pycryptodome-3.4.5-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9aebc0cefc92fb3f17ad2536e3028c99f58779b42ab68f189b074274db7898d |
|
MD5 | 6b66b12c6cc81096243839c5e1348b55 |
|
BLAKE2b-256 | ce1252ec589219adaf81dcfbf5bb2213432ad33b5a233a501ca1bb6829596a62 |