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.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db06a46c2245219620da1347250648c0d885713ec61fe8f216a052b888fc3a15 |
|
MD5 | 07023c76ef828e95e698b43698e4b4aa |
|
BLAKE2b-256 | 0b79af526fa2e8a27c020e51fc61e9b7b422afcd5d2c6464f667080836b8e126 |
Hashes for pycryptodomex-3.4.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eaec57335236ec9d3797fb0feaa5c75aad05bb600000cd28f18f5a042f70a89 |
|
MD5 | be1b49e496f418433eb1dac406e3b1db |
|
BLAKE2b-256 | b32179f62a54ad0b320be88505ffcbb3ed991ff83889ed72f3e7744e82ed8e62 |
Hashes for pycryptodomex-3.4.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb6054a3361685bb8ce4e13fd013dda519b7649d1553a6e05d8c5ba9b84a8801 |
|
MD5 | 6b0092250196ea65fa3901d063253f1a |
|
BLAKE2b-256 | a16f4b08350bb62b4aed4a38cbe5b80d68b34a0ef1863daa89c2a00c2ad782e6 |
Hashes for pycryptodomex-3.4.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8afe0b6847ba2aa14e397281625b91ed1fc407cd3e610100d585884b02b3728f |
|
MD5 | 04159d5660e1836f4043a2bd45a58517 |
|
BLAKE2b-256 | 30f9dc7a6ee0a5f107f71b94e93c0c5f39f52d577804546c5d61a80e4679778a |
Hashes for pycryptodomex-3.4.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e3644279d8982a0560d905f42b32c7f28cdd635329cf0d3b65f0bef71a20e01 |
|
MD5 | 83c55d82519b3f0eaeb9b8b57217958c |
|
BLAKE2b-256 | 6710708eb77410275fa0dffa8d0122f34c79bb6ab3f474a898e1d467982d8f35 |
Hashes for pycryptodomex-3.4.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ba890b8a7491ab8c138f640d3f2ce0b231b20bc92a1d8a570421492b646e899 |
|
MD5 | 16961dca97126bacce939263492a336b |
|
BLAKE2b-256 | 9e8f08b1bb92e2fee30cafb2ec3b0cbf09fb827ff968047508e4a1cfd712d846 |
Hashes for pycryptodomex-3.4.3-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b899eef47c786f97f0a7e76e5cdb57c54197a6a38cdeb1ba0e9c4caf38647e40 |
|
MD5 | 74c796e256cc198b0bf977ca9afc8e59 |
|
BLAKE2b-256 | 1d5b688a6a5bc51c0cdafcbe2837c267762c2cf70f2bd2f1a072981916c1b73a |
Hashes for pycryptodomex-3.4.3-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f3f4841c1e5ff93c90449465d18abcabb0c355e8f28d8310f6d5275d98eb278 |
|
MD5 | 20b0c08f7e16bd446b31708f1b8874a4 |
|
BLAKE2b-256 | 4f797fce2b394b27d294c580420b493fe30e87c52ca12b53d598547f9b407de4 |
Hashes for pycryptodomex-3.4.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0676f1667cdaed7015c55736cca1e67fda2e90160afb11f627b4bbe5d634cf88 |
|
MD5 | 1d53b9fde38cff9206faac78a82f4f0b |
|
BLAKE2b-256 | 15e57dae65d8b603fd71ac20fead0e9a78e803d9668c9b53deb4b69c161218fd |
Hashes for pycryptodomex-3.4.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bfabd319211ea53ddf20fc13845f005f930297d60f21e3acf1af58735b425b2 |
|
MD5 | 753e9493689072d339e7455136dda80f |
|
BLAKE2b-256 | 592dab46598b69f130e793e332b6fd97b191f6bc80414afa4eceb234085e5c83 |