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.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04917b0bf6d3018a03161b396502bcdce8c73b2058be1ba2e9963eb5a496da68 |
|
MD5 | 359f3df746c92ac0be084f9d8152ce03 |
|
BLAKE2b-256 | b07ca003444cd7ed05212e44f0029166576495e8eb4dfc4e194d19ef0afbc564 |
Hashes for pycryptodomex-3.4.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 137e7112f0ad304bed46201344ecd648959e4c4522b9d0fb90e5ef04d1a8e788 |
|
MD5 | 3b8e049554d1696c314bac7550443151 |
|
BLAKE2b-256 | 13ac60218b4777fad47c33df5f644385b32174eed9f4babfdaeb4d91a6669479 |
Hashes for pycryptodomex-3.4.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d7e688541b4d8211dae2c5b96c29f6a27e5027a503355719179736c4b8dec0e |
|
MD5 | 9ae1772ffd74986b6be295e34b612320 |
|
BLAKE2b-256 | b0b84ccea8bdb13bbd42d87058f7b9211190436832e309ae8c0e44eed8a85fa9 |
Hashes for pycryptodomex-3.4.6-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bb08c1dcfb11e11450dc7d67e23889af7bfe6c18fefe315ca15d5bd2195208d |
|
MD5 | 6bc30210521fa17f99683a73bfdc6a4c |
|
BLAKE2b-256 | 0b697e4439420d90f94350aad2a1928698f9156f18544ba36e2cfee5575b349a |
Hashes for pycryptodomex-3.4.6-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f58151bae528cdbbd437499120b2fc7d0e6b1e463dd7d09fff87136da313caa0 |
|
MD5 | 9c20a01c49effc268ad668b1005f0cc1 |
|
BLAKE2b-256 | 5799154c7857170510f86cfccf94cac389208f723537bf7968683b7828752057 |
Hashes for pycryptodomex-3.4.6-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80fe582d31a1b48ad80c74979dd64f5f523fb4ac8f050bb44ebcbbc55fdfca53 |
|
MD5 | 820b6b536854987479bde67a9e67eb0f |
|
BLAKE2b-256 | 64a1705e2562a312e58ea92e5e9046215b59be3cf522a2f3cb425b4f9765e6ef |
Hashes for pycryptodomex-3.4.6-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ad0b0a9c816b0aacb3d27bec55c9e0c6b6283aac614ff9ac8c2265c3ea505c2 |
|
MD5 | 8010977253c21cb7aa028c3e811e923b |
|
BLAKE2b-256 | 04352cb198e0aef0d29430bb8ec741b6dc7356ef071f34de25db1f9aa87eef06 |
Hashes for pycryptodomex-3.4.6-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1b8caa9a26c6837134410cebfdd0c25433430233862e1aff18ab910423c1d76 |
|
MD5 | 01de9ac80778fbf7509bdd2f5c603c26 |
|
BLAKE2b-256 | be0250d94a005d92614fb353549d1561f82f5dc18288d5f53e556b6ec38f528f |
Hashes for pycryptodomex-3.4.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 656a4ba3fdea782a18665b4a996dfd14c2ba696ba9464487f86b3f147758bdb3 |
|
MD5 | 382108b00af3a1185d57c4bf28355e96 |
|
BLAKE2b-256 | 7182cf743013ec7e5623d83d5266f2a71389af26b1d7c4dc9b6252c4dd5655fb |
Hashes for pycryptodomex-3.4.6-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7fe5d63bf0e8e37d067e8be2d0beabda85ba524e34209b97bf14014d2e9f9a3 |
|
MD5 | f62a747f1443b5d485d6e51e1eebc365 |
|
BLAKE2b-256 | 9a65f084e26cd503e3c30a786b051cd80c44d39a1eb553b95d35e2d2b7779bfc |