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.5.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 008e0bfc02f8c409fbe31a1dd1ff3aa18b5c109b47a05603ca734506a7b3a8cb |
|
MD5 | 1287220309955675f86e8c02eb6deebf |
|
BLAKE2b-256 | 99b302547358e1d77870e5757dc45ace00576eeef2fc8ffec3149b0c03f95164 |
Hashes for pycryptodome-3.5.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90c1c08431ccf8d6385b5071e5d3f7ecbf85dbd1cbd45439fe136bc514c73136 |
|
MD5 | e4381c8d2639c46f0eeddcffa3564654 |
|
BLAKE2b-256 | 28ab0b4982895bbac201c7b6df1369af5cdf702c2391f3aa11f97673ffd41fd9 |
Hashes for pycryptodome-3.5.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73ea3973983eaa096c6f2857185d9cd1d89586cf69478ff4ddbf6a4df9068d78 |
|
MD5 | c648ffc4b381707fc3955a250d54b7ed |
|
BLAKE2b-256 | d86a32cabc561c5290a328b3a9907289f831954be185ce139d7ff0fbddfe8ce6 |
Hashes for pycryptodome-3.5.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6263002baf78f92ed1a5bd1112b695eed3d1b03813a516a1443a5ad41e70d09 |
|
MD5 | b8d8d95230eda3bc9b31a946acdfcd1b |
|
BLAKE2b-256 | 0de9191734f2f6513cf653da8d8c068acd8f149e824b24feef36222185fbd8f5 |
Hashes for pycryptodome-3.5.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f792eb9ff211445712824c30c1f59970f79339bcc4e0b0e2903445d20f99685 |
|
MD5 | 12cad378cd8728f86737c7bcba0fe68e |
|
BLAKE2b-256 | a4ed3d2f2631240d38663fab301f7def66961a1bb5fcbc3603a9bc5e12d4e0ea |
Hashes for pycryptodome-3.5.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78b537993b3baeb1e0f0ae6546cbbf859f71aec5815ff234f8b496fdc8be862d |
|
MD5 | 6737bd5c87b0c806edfd99c89be03c8b |
|
BLAKE2b-256 | f0b41dea85edb8c6b1f6b8e9865583989333635bd9275a9efde5f3e1106db6fc |
Hashes for pycryptodome-3.5.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 215e1d99e389ebe910e5a12c85a1974eba88e2fc23256913e9eff5a34f7361a9 |
|
MD5 | 1c1b484f69a3cf2a2d1378c7790cf219 |
|
BLAKE2b-256 | a332f3d5b10b45222a1f7b6b5686e3594478b0da036f64febfb2ed22b2ff7c72 |
Hashes for pycryptodome-3.5.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bcf1157ba987081a3a52db3a2f5e358e7cafe3321ed3efa9c4f8d94ca1cf230 |
|
MD5 | d4c387ca2462dfcea12004d4e28396c9 |
|
BLAKE2b-256 | b0cdf474aa4db27dd928a9f102f3b5cab46bbd84378b47caeb9e29840e166482 |
Hashes for pycryptodome-3.5.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d76e04b988dadb4893f68ca1ff189ae37c4766cbd3cbed39d764e63bf2d2874f |
|
MD5 | dfd18013af6fddeae0fd67069cbf6b08 |
|
BLAKE2b-256 | 1470ac803e51f4955d6dc280955f52246b0ce45c73036bf718434887b6609137 |
Hashes for pycryptodome-3.5.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 684045e3b34d646b3888cb334a051ff11f9e393482fed95e9914d155a592348c |
|
MD5 | 1cc40060b5e118fb3487395feff40a09 |
|
BLAKE2b-256 | 5f61eb21a6bec65a9580a1b07ea3c31317a7385d3778b53599abd6425a883e80 |
Hashes for pycryptodome-3.5.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb2c04525ababc2e74e09250e2a13ff01153ce49b2418be88d75d7656673e98e |
|
MD5 | 45934c9cdf642f0be047fd00291f0ab8 |
|
BLAKE2b-256 | 6bada78149ec48a0427562f438fbb6f0264ab801c96894ed91a3d95210e2cb76 |
Hashes for pycryptodome-3.5.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02ad39528c6e856acfc04af7b86106b58806b56b067548be7213016510f44142 |
|
MD5 | 32ee71240150b5c5f954dfabb487d940 |
|
BLAKE2b-256 | 859136e462df55356ca360f96ce84038d25d52e352cedf59e7493bd664a37bd6 |
Hashes for pycryptodome-3.5.1-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfa669956db31bfc5aad26dc1625b218e3f0200f4b52f1f36985488d86a55d93 |
|
MD5 | f5cc786e428d48d8eb2b472b258ad08c |
|
BLAKE2b-256 | cc28d8b7c4ce47b7ddd7e1bbd69cc690c850adda0db7d68dc709945bb6187169 |
Hashes for pycryptodome-3.5.1-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a14521d67f082f76dea5d63affa70923ef6228151d56d2e8320baaabb31b0488 |
|
MD5 | f3d3b9923c5ec1967f5775a3b95c3c21 |
|
BLAKE2b-256 | 221d3d34cf6debc320cc9343136575e3947a76962002728eaf6e4e2767428efe |
Hashes for pycryptodome-3.5.1-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c7c50269092127d19db4004c4bd5814daa158428947d2074ef94dc2c4c363e3 |
|
MD5 | dbe3d0a7eb21d7a4a198d0fceaaa59de |
|
BLAKE2b-256 | 3d9ac1087b3902120a4b875addfc3e2c6dc3341bf7df79eecf516ab68a7370c2 |
Hashes for pycryptodome-3.5.1-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae8a135010e73b9be3a058177fc2bea5a0210ef06f4ec98a08096f4f95f01eb7 |
|
MD5 | 82e0096f40fcf5546362aeec6912d7fc |
|
BLAKE2b-256 | 357f94d8bfa0034cde284b3694188aff3175247e759359fba540f27dbb9c22cb |
Hashes for pycryptodome-3.5.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6881f7c099e64600eaf5baabec6a83db24db695f00d64f472fd583736f652bee |
|
MD5 | 8801998c1b6bc03a9789fda5b830b002 |
|
BLAKE2b-256 | 19919842cf68dd318b88ed384991fc2ec2756069b3e6c7d05a2eb32283172906 |
Hashes for pycryptodome-3.5.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0ea075b462ddd2135002ed9df72925e08629e750b9f37c21a2076602fab23a8 |
|
MD5 | 8963d40b9481927b7875eba002cba065 |
|
BLAKE2b-256 | d76c61d0d792f261a04fbe494f2b548a202afbbec66e120cb76926bf732f8bf7 |
Hashes for pycryptodome-3.5.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74bcd74b580f486f67ea71b9f86aa405cf2a454ddddc3ec03d8274c2f9cb6949 |
|
MD5 | 956a25f14c78d201455a955707c2ad2e |
|
BLAKE2b-256 | acd0215486663eea9d91684add8becfe0eed979b0129541738c0cf41fa25894a |
Hashes for pycryptodome-3.5.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb3b3608764a0203d3f8b74ee2566d6bcda53c8afc2d70596f2ee5031e049f04 |
|
MD5 | b97d986b4dcdb47908b1501727f62cb2 |
|
BLAKE2b-256 | f4ede50cc7f493b1db589b8bf884711ac0d629df8e1d2b12d4c05afd28702f2a |
Hashes for pycryptodome-3.5.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08b0af4035b036d3fa051148e1d44ab8e4260e87daca2c34e29fd1ba883a890b |
|
MD5 | 9df8f1d081813159b4e81cf174312825 |
|
BLAKE2b-256 | 3e9f9f6c644a6a35f204c7bb6e3f97c5a91fb5b9c81425fe3d0b42e1ae3cc0b1 |
Hashes for pycryptodome-3.5.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd2ca8126841cee1bedc1d8e1bb5e9bfe3f0624f9858b580f8bd4309421c2b27 |
|
MD5 | 8c28ee69e9126e1c915a0cc489443e14 |
|
BLAKE2b-256 | fa79a3b27b3d39b7dd7d922c9161c336a098de92f341c2c3caa90ea5198cef81 |