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, P-384 and P-521 curves 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.8.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c89e060b74443b276669d34d20bb51d250c59ab7cf0f4b79a139f2394b9eac8 |
|
MD5 | 7f0079256d0853697523577da9ea4267 |
|
BLAKE2b-256 | b511fc3f04bc1a95cb268a3b24576ef35accdad9c1063652d25983f4efec3492 |
Hashes for pycryptodomex-3.8.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53162a1f74b0d29628474712849da8309292ce59a24636db7bc3a71eed0f7fb9 |
|
MD5 | 7d82f5acbd90202a15f73627a7b1ac89 |
|
BLAKE2b-256 | 1259e8b8012f7b7abc25393d46dd831e2a3f55eb3246cd77ac011bf78ce3a238 |
Hashes for pycryptodomex-3.8.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f081a85e5e1098fd3474569b232a45ed493c2f7a882c56889eb4a9f2343419b4 |
|
MD5 | cb3b021f07f2a184a50557f44938fd26 |
|
BLAKE2b-256 | f2da0999aadcf08fa447bb0d4163370274b9445ecffd6059b85933da03e59c31 |
Hashes for pycryptodomex-3.8.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa555f6a1f5840835f511631048dbba423072d1c64a749ef5cfae01642988ff6 |
|
MD5 | eab36462cc4110b45e7045d874a6d8ce |
|
BLAKE2b-256 | 2e884ccb9e088ff371ce2f6d2af8bc13a870445fbef87d6a00f6c778cd84980c |
Hashes for pycryptodomex-3.8.1-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5da7b97f2ed1c68de4bf4671395f4c025fdd8aa39cbd48c9c5e79c35c57fb07 |
|
MD5 | 95625a62f1919b59c00e86690f1c12d3 |
|
BLAKE2b-256 | 656d975220b5406f96d0080819115aea05dc1e89fc60395157d53f0118d2d51e |
Hashes for pycryptodomex-3.8.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 229c140219628a274e9b7d23f4102bdd1caffde8f0401afc7b79729145c1ab48 |
|
MD5 | 7dd0f99be4818e523eb629687161788f |
|
BLAKE2b-256 | c9a0e191b8fead03199a9ecfe17946d6b47c462b51e008925c04bed91df5c5a0 |
Hashes for pycryptodomex-3.8.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a66d705ae49c3ac1ecb2e14a129f086772f82c5837b0cd8c752015da85273060 |
|
MD5 | 599c9525fc69e6b51b1ae4ef1a4da730 |
|
BLAKE2b-256 | c306fe11d0e8be7b6190a8d9af52e0aaad5c75d81e9aa74eaab1b5cd5db02f97 |
Hashes for pycryptodomex-3.8.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 451584146f22fd2db641a2c2ed7b72f4d7e845d772def723ebe3bb65a9baa1d5 |
|
MD5 | 036c6771663a50b1a78fa35f928626ef |
|
BLAKE2b-256 | ae13ec058561e604854090f91f5a303aae9982a37ebc8db3acbf5842798ec214 |
Hashes for pycryptodomex-3.8.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dc8de3483318e047a2c79673cee81f833081d3f64dbb409b3fb1e36e117c0e1 |
|
MD5 | 66472f89d0b02726a27bbec12dfabe3a |
|
BLAKE2b-256 | 4c6582b509bc9e96e13cd72c616e3a31092fb33d646a3df14069358cfb0cc7c9 |
Hashes for pycryptodomex-3.8.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a9da7b6500812da4bfe6e299fce06cf12334e7140e0ee1314309b8c2ae44b91 |
|
MD5 | d8c88774434960ee1fe283e9f7394f83 |
|
BLAKE2b-256 | 6c79b9528dec9bd92ff7a301e56f6555eac7a0da84a5eae97db611f79f9ac035 |
Hashes for pycryptodomex-3.8.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f958585528569df70ec9810576cd35196e30ff7e144733cfca58a7c4a94fe85c |
|
MD5 | 131ed8c49d28a821596ce52ee748e279 |
|
BLAKE2b-256 | 3ec0fd6c4808bd6ce55e67a93b14d8808fcddcaa1dd43b95927751272798142e |
Hashes for pycryptodomex-3.8.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d670b6385064bdfbae18efce27a01fbbf62eb428a016fab91636b01d6264109 |
|
MD5 | 25aa682bf4abc57b1d96c800a387eb7d |
|
BLAKE2b-256 | 6064398bdf4030dd856aaf48cd5cea95c0ab101b23473a25e10c005db49940aa |
Hashes for pycryptodomex-3.8.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc2a0a1694b11de7e9fd3bc11b12d38d144545ba927585801da2ad6ac08d23d9 |
|
MD5 | c2bd40aaa290db62fd7d19208af191bd |
|
BLAKE2b-256 | f265725740c9e69d922944336c96a24dc833cc51995eb5f00f0c6a726ca0bb38 |
Hashes for pycryptodomex-3.8.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3c6a885dc21d722666181f9442cdedda96916dc4ea707ac6373bc903b0a39b6 |
|
MD5 | 72f2282183a0ae884ed6a1a61a4285db |
|
BLAKE2b-256 | f70221bd76abf4596f46e060831a569a5741bd2a969ff77511e7e56d11a8e28c |
Hashes for pycryptodomex-3.8.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d0dcfe1817ff97aa27998c663a6e0baa123730544e95abcd317e29ae90366fd |
|
MD5 | 5ae61fd72e897c11ac09c7a96d586e79 |
|
BLAKE2b-256 | b4d4820e6280d0a067c9fb75f207fbc4e17b67dc781831e941a2042b1c6c0f13 |
Hashes for pycryptodomex-3.8.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cf392b37f4a13740e01de6f4b34f23ae7f5eef6ba25a8c01782ea39877eafd3 |
|
MD5 | 16bf5cd597b8232fb3984cac0aa87099 |
|
BLAKE2b-256 | 22c3e0bc7f0d44600982ba66018dd2ada1b37cf4c422963a0fc457cf5b38f6e5 |
Hashes for pycryptodomex-3.8.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ca9ced9b72e7ae6c1fce6199904c3c95701ca20f291214fa435417793708823 |
|
MD5 | 866d15f0bfa5d5b76a3b80698715c954 |
|
BLAKE2b-256 | fd98d5c6a013220cb46984f9e1591b9b5d30fabb0f6fab6dca4e28eefa6bf9fb |
Hashes for pycryptodomex-3.8.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aacb01659dfaf417f74f76fe751b6fe61e48cf1fdf6b8485d659844036a77538 |
|
MD5 | 2c18cd30e70709615ffedfb89d8731e4 |
|
BLAKE2b-256 | 31323ae95dc00b9bd358e75395e1eb05a18af03461a0b4ebbad73dd747fcd6ac |
Hashes for pycryptodomex-3.8.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f58b28f0136aa7da6c003771b85ec0924ae6c8f37073ba005983f03694cd4f88 |
|
MD5 | 38997cd7a9582df380c8097cd8af11a7 |
|
BLAKE2b-256 | 69a14c05b89db6d69faa989897402a570550698704e3c81ed81050c9991b0f49 |
Hashes for pycryptodomex-3.8.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7493a7be406b826f57909263636c70a7558243dbf9ce063551d7a62f524a684d |
|
MD5 | c43045adcc25dff584ee6e5ff9cab77e |
|
BLAKE2b-256 | 899b79633b34ed840725e910b4d13c531059ae13807e30e72c1de566c09fe523 |
Hashes for pycryptodomex-3.8.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6dc27f8b0698998e4664b133ac25fb6ba7544bacb58b8db10c065987db63744b |
|
MD5 | e45fe133c578bab110b7de1729891558 |
|
BLAKE2b-256 | 8b4b2c3d3f004bca34691c8a202800d2da79ac8151d42c9323251723b8cb98e7 |
Hashes for pycryptodomex-3.8.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed7dff70c9ee74767607cb82ad7c40bf7e090fe01081e4f9db26d105eecf4f5 |
|
MD5 | d5fac9e65064b21dbcbc75112c3696b8 |
|
BLAKE2b-256 | 11a9f38aa674105a392ae7da00389cb1e05a8d82dccc842e01e4d02df4e51171 |
Hashes for pycryptodomex-3.8.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08837e9f433d9a60533a78b610fae3f7fb3256c771bda916a3d135c3d7daad6e |
|
MD5 | 1368398c6f5b9117b2def6e135d37068 |
|
BLAKE2b-256 | 46bd2c3ee6a51733143f83595264280adedcd82aa27e4e8d004251d5bcf88640 |
Hashes for pycryptodomex-3.8.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f24d9a67954ed9449b17fc6e3464ba302e3984dfea14c4e6906d62211d9f815 |
|
MD5 | 60dda9dd61a72b4bfe3ffb7384081b6c |
|
BLAKE2b-256 | a0d3e7ef7eb2d0b821010540ab1cb811553862c8407270e62494783e30baedaf |
Hashes for pycryptodomex-3.8.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b106a65d75ef45adebff36b7992300e542fe44ef8de738ca890389adb389a295 |
|
MD5 | 7b4b9ac7b933cb9d4b3d8a4df66072f8 |
|
BLAKE2b-256 | 3aa1e7af294d4d1b435a0388822d338d2d8e6477f0b4776467a32dfd1619caf8 |
Hashes for pycryptodomex-3.8.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca0b1b41dc6bfba6588c6404226df41b09f8f8d15172cf40185943a4c45c5aab |
|
MD5 | f6ebd9f2485324edddbf7240a1dc687f |
|
BLAKE2b-256 | 2e4019f427389614408ad7ebef0b88407a0fd7afd3683e3c8e8427474913d7b1 |
Hashes for pycryptodomex-3.8.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4248997bd0de692b78f4821b9ff5708d3b1123292bf69af813afe46a567a4615 |
|
MD5 | cb5b090fd23c7bc82feeb1ab21da44be |
|
BLAKE2b-256 | 8cd5a1270e4872c42f55056823f91cc1dcacaac14dfb4465c241cf7e3e00fb94 |