Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.6 and 2.7, Python 3.4 and newer, 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.7.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6ecffbcbad9276f521572acc200db7325d12369e54182d31b7cef60023f8761 |
|
MD5 | a2b4c8bce776b6c799af64e589e5681f |
|
BLAKE2b-256 | 40f99e0cd03dccf79a81098d22ad041f3db3670eab7862755cec581d8cdf9fc6 |
Hashes for pycryptodomex-3.7.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01d0ad40a64997fdded11716ac6633fa5053f789fff85053ddad106827bbdb14 |
|
MD5 | ea123a95513af9f4bcb0642976a0e8f1 |
|
BLAKE2b-256 | b2992cf8ede9dd685fe23de8ccafed56bcbae78341cb8fa51c6876e6a3f80b9e |
Hashes for pycryptodomex-3.7.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adf9a84fae85952e80873f868dbcece741804d0a0973ffb91949229ca346e376 |
|
MD5 | 189ba9b1ef84c8024ff5e9168cc666eb |
|
BLAKE2b-256 | f7805733f205e406b182a91552b93f1f3cf4b085318edf458b22b85fee85fa86 |
Hashes for pycryptodomex-3.7.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39dee40cb2ec0c3154b008bed9a3ebbbf12e3adb49e9ddbf0f69866eb2583673 |
|
MD5 | e3ce578fcb521c925c0ca7d53ea4247d |
|
BLAKE2b-256 | a3025faf7781b50844dfda8091e9d5a060b16add04a0e7be6df87721cd2a894a |
Hashes for pycryptodomex-3.7.1-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 472fe0d3fa00eb96cec42a0e44d2526d1e1fb081ea4d4360531c5b62a37a73e9 |
|
MD5 | 04ad6e1aeb119c60fb5b5ccd1410756e |
|
BLAKE2b-256 | 51ebae8b3ad97be5743042cc41a3168ad626f9bb3a3e9ecd227c38b3bb5c15e5 |
Hashes for pycryptodomex-3.7.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7b8c644b2902133bced8d68f84ca60104e8251939749861bdb2157269901d8b |
|
MD5 | 5bc506d47c7a65e365b381cdaea322dc |
|
BLAKE2b-256 | e2d4836db4a3f36594d9a3c403f3dfe60cb01b4c327d184508b03d82942b7ed6 |
Hashes for pycryptodomex-3.7.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 816bcd25e8c7b76240e155cc7078aa42246adafbdb8cfbfc8838fa1a13eddb3d |
|
MD5 | 6f955d10a2dd2bf4e33244f15f16ae2e |
|
BLAKE2b-256 | 1ded6006a883983b74b6c2bd3a8bec58eccd4d25f7639d126ba09d693f622782 |
Hashes for pycryptodomex-3.7.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c9119efde08555160ab2346a8ae9a747aa9b6690d9afebf4e0730a4bdc570af |
|
MD5 | cdaddef3dbb9fced98bebca5d4c3f712 |
|
BLAKE2b-256 | 72aff910f2cf3e9baf79d922826cef113ef7ba15efe6cfc17d61e19c44fb3dc4 |
Hashes for pycryptodomex-3.7.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 022977f3ba341e2befb4bdb226daf72ca0ab3a879c6e9d8f329ed6784a2b66c5 |
|
MD5 | 9a757dbc5e2266b2f027176158363e8f |
|
BLAKE2b-256 | 443b8f7867f5dc94d0c11d6393a94e81933ef2011b06c3d362bd3ae09ea192c5 |
Hashes for pycryptodomex-3.7.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b505cf9784f5aead327db35a141c0b3866b03de15900d99daae851f871b23a63 |
|
MD5 | 9f57070efe9be94e4cbadbe26963a80c |
|
BLAKE2b-256 | dc6700628fcdab8696b697dcc338205c22c567537c07a39b361c254c42e0b5f3 |
Hashes for pycryptodomex-3.7.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91785e0515c804773d25490e2a85463b8cbea4e079339fa7c4d40e7c00f66dd5 |
|
MD5 | 70b373a0cfd12471605702e2cfab43fc |
|
BLAKE2b-256 | a09b39b521482a7cc116f24a6fa434b28349c5035a24f09a57881687ed90fc10 |
Hashes for pycryptodomex-3.7.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad70efcb182223d4137227225493a8565914ad7064515ebeb8293d93e5dd0e74 |
|
MD5 | 0a67a959bc6ca9c530179718886dce7e |
|
BLAKE2b-256 | 415191d81f24e29a1ec755b128c4f3b65eabd5d37c14412c7bd6bfedbb9746bd |
Hashes for pycryptodomex-3.7.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7adfade841ddbf03824bcbdd31aa42160ef58ecdeac3227afd27b606d4b9cf0 |
|
MD5 | 3e03e62e3e71a0a192ec2b680299511e |
|
BLAKE2b-256 | c74ec4530fb0586e79b686c4ad1f13d7d69b7f4804ed5b994bc97a62ae880cb1 |
Hashes for pycryptodomex-3.7.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 088a60c787bb399a7fa1db83869aa97c7c330c2e297105998f70d6aacd58ac67 |
|
MD5 | d88cd98e40ac50f8403ac32849af76e3 |
|
BLAKE2b-256 | 4ec64bb40d1c95ee1b1407cdf8899d001490bdf3b5569f5a1ab0d201a5c1a3d4 |
Hashes for pycryptodomex-3.7.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6bb783014f6aab9435fa94d5d4f3de5e116a39f9da2ef18dc30d709f9fe33e9 |
|
MD5 | f036c68cc659bf7577c3e2c547925701 |
|
BLAKE2b-256 | 9503cb48a23f998591c8a8f203766e10adc670c266dfb462fa772fac27d783d7 |
Hashes for pycryptodomex-3.7.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83a42cc6b160128389657c6984055bc31e78bd64498ff601c6a33abe19e34263 |
|
MD5 | 115815a3aabe0dab24ed54f6272af893 |
|
BLAKE2b-256 | 1cd3047e0b54b967920c43917b4b30e9447c17587a9b253d4ef81a60e3d3ded0 |
Hashes for pycryptodomex-3.7.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73a21f7d22a5eeed37a957052c35d436fc80ba30da7880bc51ad3ee4169ae8ab |
|
MD5 | 8ead77ea2b8384bdfd8a33305c22d65b |
|
BLAKE2b-256 | ba65ea6822d90cd11cd9c14a8e210667e7cf1080d9104df82c7cb13d8ceb2ac1 |
Hashes for pycryptodomex-3.7.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 589e2a70deff7e7b0130bb231f1af3df97b98de1eb9a2ef88652a3b7d9498895 |
|
MD5 | fef83184f6767f362e9c15122146c4ab |
|
BLAKE2b-256 | 776709beb53fc7a0d2d161a976953eeaaf15397b6e583a502327876582a8b8d0 |
Hashes for pycryptodomex-3.7.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6f268ada4ca4db76e584aa86da41ba4499d844b14dcf83c664df0ca20c7ab04 |
|
MD5 | 3fa62459dcab3e68600dd09ed8eceba0 |
|
BLAKE2b-256 | a5bd7e058dbe28800b49d447a0652b51aab9abcfd6dd441886eae9e8aec329a8 |
Hashes for pycryptodomex-3.7.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1346d497a4919e0cfbe11592954200f00b42488d29a739d4e62e97c994c980cb |
|
MD5 | edfd6453837f73b0a7035a0f3ddff8e0 |
|
BLAKE2b-256 | 8c4ce59eb014e34431c4f7385c683987903c83dfdc3149a811d1d9478c2378d0 |
Hashes for pycryptodomex-3.7.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75ef74d207d40122aeefaae3effa3820fc86224dcb1b09010fa086a5faa7ab01 |
|
MD5 | 6085db41ec49c4a287f7a600e8d4418c |
|
BLAKE2b-256 | 0f09d133c952cfe4b697c80c2830ae993819b89b1053de9a86e92a95866dc80f |
Hashes for pycryptodomex-3.7.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4efd33d01f4a88adf360d3b7af49a40f0b07d227b648311f6fd138e3bf8157c6 |
|
MD5 | a4186e8dafb8e84952887eaec83d6433 |
|
BLAKE2b-256 | 174b931f19fe301696962d8dba0b3b7e525833075b85dcba630eaaa7f5dbf4e9 |
Hashes for pycryptodomex-3.7.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fef1c0d440bf5adabf6560ff7d4279c11f87ab5459856274667f4960d721c033 |
|
MD5 | 66f4d981a4aafdec600989ae33bb6572 |
|
BLAKE2b-256 | 3a727308d87a07a1c2849b7564901be8d99fa7b0c243f3c590ffadc777e805da |
Hashes for pycryptodomex-3.7.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fdcba28a54fb8167cf65b3bfe25184290941fb33a3034bf404df2e00b7bd1d4 |
|
MD5 | 381cdccb3eb23df54a8f5cd115a51ef8 |
|
BLAKE2b-256 | e878d26730af9df022116f0f45eee7b2da632ace5fe67e43d93059eec1102cff |
Hashes for pycryptodomex-3.7.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c12ada4466b8283f933ef7358c73d80ba8f32c42c6b33e358d180cefd928bac0 |
|
MD5 | e7e5bd47274fa33b8aa15707dc3c596f |
|
BLAKE2b-256 | 9aca19710efa48298f9a9759077b41d1939c46f8e6c474b28ed6b129dce40044 |
Hashes for pycryptodomex-3.7.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed59ca5e75873452f3a3111dafda6399c520e800d10f94f24cf9f945e315dd7c |
|
MD5 | 1876ac86860620fb639691bded9139c3 |
|
BLAKE2b-256 | 975b82f594e9d8c06aed68a16bd3a623d1c40cd70aeab705916b7dcb1ee2552f |
Hashes for pycryptodomex-3.7.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fd226179703a4acf32d25c82066dfcf912f0f0cbb1e888712b4f2042534e4b4 |
|
MD5 | 0085e284991b8a6acf47a2700bdd52de |
|
BLAKE2b-256 | f268cc374e60f73a749284326fcd25372816dc501b029257814639b20baf6333 |