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.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdfd5de7ccb7bcf37ec74ec12181f67a1a761f88318258067126827b5ec0d3eb |
|
MD5 | 98d70a2c43064704b403f569d7b5d4b1 |
|
BLAKE2b-256 | 26ea2d01b71668963bcf13f91c55d6f324a78ee33f2840295d8fa8774e873314 |
Hashes for pycryptodome-3.4.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 602732408900628603aedf376d14670a9fc5e3778e19aea74fcf7731bed77542 |
|
MD5 | d762bf23d4c149a094de6847e3b6c08a |
|
BLAKE2b-256 | b152ad01b8558b6f7a250966da72f435be2e1db8333e4d835c2c07220055174e |
Hashes for pycryptodome-3.4.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dce7b68a79c9996688daba0ae02499c3b2a35f0d5e08d81156ae66b91c05625a |
|
MD5 | 106af691d935bb37f4ca693be35c452d |
|
BLAKE2b-256 | 5f5bc75cf1339f6f15c0c8b11fe46df3f2ed5adf910d9e7fb4fb94ae5e5d4490 |
Hashes for pycryptodome-3.4.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcf3a8cbe23bd00197c0860f3806de2538649bb7571b8d26dc5d268cd1c7b0a6 |
|
MD5 | aeb7799467a70c471bc68b75ce56f11b |
|
BLAKE2b-256 | 6b374f889de6d8ad8c906a5d9ddd8a71325763a2ed6e2cc2cba7ca9ed7d8f8a2 |
Hashes for pycryptodome-3.4.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3a24d6756be74dadaff8c460076ab9b24085d92a1a4fa6934c7623bae1dbdfc |
|
MD5 | 793d716529c1db4c2c2cfa5c1f68ad77 |
|
BLAKE2b-256 | 1ee1ab80e6f6fbb8a65a5d36a37b1b446f3b33fc3cd73f060af06d99507740d5 |
Hashes for pycryptodome-3.4.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77d2790d2c649dff7b5d25639bba8d11e25c55d79763026fd7c1c0d395b99b2a |
|
MD5 | fc1003420d051e66accb0b7276adea09 |
|
BLAKE2b-256 | ccd4c45690a41069d082fa35b303e6f8ab7905cb9cb5ac7f368d4da6743c6362 |
Hashes for pycryptodome-3.4.3-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1cecf552234304d618ed6dcf23be19c59ba9de58eb7b2cd03a84bcc847d8b77 |
|
MD5 | f34c767317b9176b530a88dbd75b687e |
|
BLAKE2b-256 | dc8385917f6f18d59c8e411b15154c865229cab4acb19cb07ec83ee6388b49c4 |
Hashes for pycryptodome-3.4.3-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52af28bfb104abae1986214db0e38ce9e5250c7054b7c00ef7bf12b8b149beb6 |
|
MD5 | 6d075d46165bbe89e48eff487fb2d6a9 |
|
BLAKE2b-256 | eacd7223a65e337ee4b3cd67c54b0aa408c44e616ec1a4536bbfcb0aa97d5084 |
Hashes for pycryptodome-3.4.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1870d8d3634b51f063314290988eff99e61e5ca24d3ff88216a1438e2c2f8ea4 |
|
MD5 | c94e6c2aefc9ab58c36596dbd23c56b7 |
|
BLAKE2b-256 | a445482bf3ce189df0e5e9c027a746f99f2aa99580caba2f8d66234857d92739 |
Hashes for pycryptodome-3.4.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcaddb2b7a732c3a5a92547a8562c039b36cf6029a4bfa97fc53a74bf165f220 |
|
MD5 | 67391f26c404184ab7c56180b43447a0 |
|
BLAKE2b-256 | 73bffef5d81ca8d39c1eb1dddff62ba717c84cf0392de0a79bd61e9d1b22a1fc |