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.6.4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da646eddbe026306fd1cb2c392a9aee4ebea13f2a9add9af303bb3151786a5d8 |
|
MD5 | 934c2ce14ae75747e31ab3192b74de12 |
|
BLAKE2b-256 | 8dbd994fb673c99a36fd59365d694276b4dd6c4d935e6ab5b660d05deee9ff79 |
Hashes for pycryptodomex-3.6.4-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94a10446ad61965516aecd610a2dd28d79ab1dfd8723903e1bd19ffa985c208e |
|
MD5 | a705747600bf560b948efb7ddd8c28e6 |
|
BLAKE2b-256 | 0bab92ad1249c016914df8aef86a593e34ec3ccb68c9b8e31ec052732e1d3564 |
Hashes for pycryptodomex-3.6.4-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d7e6fb69d9fd2c57e177f8a9cdf6489a725da77568e3d0a226c7dd18504396a |
|
MD5 | ae1fa3f36174c61759dfd09b6d7cd995 |
|
BLAKE2b-256 | f1bc7cf82523948e7cc7beaf7d999dc94fa34d5fef7008e67bf1c1191b197a33 |
Hashes for pycryptodomex-3.6.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88210edafd564c8ff4a68716aaf0627e3bc43e9c192a33d6f5616743f72c2d9b |
|
MD5 | 84b3216ab42bf54c3fb1ea40503067ba |
|
BLAKE2b-256 | 878102fe51f96df30ade913b2cc6e1075c26d92336c88e8e2d3e4902cdc04ee1 |
Hashes for pycryptodomex-3.6.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67ad8b2ad15a99ae70e287454a112f67d2abaf160ee9c97f9daebf2296066447 |
|
MD5 | f922e511a18f94d15ab812ac0d0a575d |
|
BLAKE2b-256 | 94fd3452f2881160e7c181a31f2846a30d4e0fc66daf3e574a51ce5de9ecc6c1 |
Hashes for pycryptodomex-3.6.4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1962b81eef81bf5c42d625816904a22a0bd23d15ca5d49891a54e3c0d0189d84 |
|
MD5 | 1221d9b0fe8caa9325e0ac8934db2cab |
|
BLAKE2b-256 | 06bb11e180aa7f7894a29b5336415d2183fb113106a0678cd24c276b024d62ce |
Hashes for pycryptodomex-3.6.4-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9a91fd9e7967a5bad88d542c9fce09323e15d16cb6fa9b8978390e46e68cbdf |
|
MD5 | 39fbe451207acba99bacac36edeee52a |
|
BLAKE2b-256 | b6f32561db8a26c5c2b24bcd766ba5e04828134c9971997e8b839b34a324e42c |
Hashes for pycryptodomex-3.6.4-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df93eaccd5c09e6380fab8f15c06a89944415e4bb9af64a94f467ce4c782ff8e |
|
MD5 | 7e1383c905a797299c5739fd27cd91ba |
|
BLAKE2b-256 | f23513506fe6305a144614be76c2fda60f058f4785e85bfd420e2a24111f02d3 |
Hashes for pycryptodomex-3.6.4-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43ad6d1d7ca545d53360bf412ee70fcb9ede876b4376fc6db06fc7328f70588c |
|
MD5 | d9a29db06345c7f978cfa8f6b489d80a |
|
BLAKE2b-256 | 94ec077705b59494133cd5d71a774a4ba9be469ca2b68613cad525082ff69f6d |
Hashes for pycryptodomex-3.6.4-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a6b14a90bdcbcdc268acae87126c33bf4250d3842803a93a548d7c10135893a |
|
MD5 | b9391c056689f635481f291688a7621c |
|
BLAKE2b-256 | e146552ef34036b09eefcc9424f08710e8bd31991506aa3929c0807d05719aaf |
Hashes for pycryptodomex-3.6.4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a04cd6021ff2756c38135a95f81b980485507bccbff4d2b8f62e537552270471 |
|
MD5 | f962673538a398d8becf979ab44b370f |
|
BLAKE2b-256 | 0416fdd80bad35ea341a666b7449476a8622ae05b9ed801bafcf022086df4612 |
Hashes for pycryptodomex-3.6.4-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e667303019770834354c75022ab0324d5ae5bf7cd7015939678033a58f87ee70 |
|
MD5 | 23b1a17bd2b81bb37c9368471357169e |
|
BLAKE2b-256 | 7a4f25dcd6873b7a44b0ba8915b6aadc75e3b39434c377560757a19ab9b17f8b |
Hashes for pycryptodomex-3.6.4-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9dae2e738622bd35ba82fe0b06f773be137a14e6b28defb2e36efc2d809cd28a |
|
MD5 | f9d1a52b91d18fa43243c8cf8ce7b7bf |
|
BLAKE2b-256 | f1d76454f5f89269e06b60133167e62be4ece93a440d528e0fef09370466f2c9 |
Hashes for pycryptodomex-3.6.4-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5f3c8912b36e6abb843a51eecb414a1161f80c0ca0b65066c23aa449b5f98db |
|
MD5 | 93b92c14f82bc96ded1d1f728c2468d2 |
|
BLAKE2b-256 | dc5522fef502a822779cf93c994e3137c5b242ced22975250e10c6488e965b2e |
Hashes for pycryptodomex-3.6.4-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e22d47935d5fa95f556d5f5857576bc6750233964de06a840d58459010c3889 |
|
MD5 | 09f205e1593dd7a30578fbcc2a15fa8d |
|
BLAKE2b-256 | 096e313648396482c7b936ff82110c2cf175fc0256dbc0d3b7bc0983dbf34e53 |
Hashes for pycryptodomex-3.6.4-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08d0aba5a72e8af5da118ac4b6a5d75befceca7dd92a031b040ed5ff4417cec2 |
|
MD5 | 6398c25d20ea14aa46a8a7721adbc579 |
|
BLAKE2b-256 | 347d9c83e7930dc8cf05ab8b8a2b7443481b711dfedfcd5d3e4342a1b16c03c7 |
Hashes for pycryptodomex-3.6.4-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0461e88a7199f9e88f9f90c2c1e109e9e1f7bbb94dc6192e5df52829d31510c1 |
|
MD5 | 8fadd4a63d0924580b2d5b515b45f224 |
|
BLAKE2b-256 | 6146ee0174d32c87fd53b3f1c5910b6df79a7495e1a77fe70068c92230ce140a |
Hashes for pycryptodomex-3.6.4-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b4d3c4a069a05972e0ed7111071bbcb4727ac652b5d7e8f786e8ea2fe63306b |
|
MD5 | 8723c0dae8d87cb7737ff098a77b0f2f |
|
BLAKE2b-256 | 7d70ad89be5465c9b0e1859f1bf75182dd5427f9d8fb435f5dc1f74b9169c6e6 |
Hashes for pycryptodomex-3.6.4-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3b61625b60dd5e72556520a77464e2ac568c20b8ad12ea1f4443bf5051dc624 |
|
MD5 | e41862baeec1b2caacf4f3c1abfb12f2 |
|
BLAKE2b-256 | 8f4eafce58005076c38e84c846be0b9bb2bb32fb88fdd6cea09642dec27a0d01 |
Hashes for pycryptodomex-3.6.4-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10ef21d1728ec0b8afc4f8e1d8d9ea66f317154ea18731a4a05bd996cdc33fdf |
|
MD5 | d93f54c4672a991faf117b2878e62f53 |
|
BLAKE2b-256 | 46b8ff34dc16057137ddac8d33cb57178f686eac388ad85355d8c2aa77564cc5 |
Hashes for pycryptodomex-3.6.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7907d7a5adde7cd07d19f129a4afa892b68b0b52a07eaf989e48e2677040b4bf |
|
MD5 | d30e76ee68c48f2e1914ca1fee738c69 |
|
BLAKE2b-256 | c6777e33afb130f80e8c5e6e5a89cfb844d15f17e077ee073a534cb54f336f2b |
Hashes for pycryptodomex-3.6.4-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24aae88efe3cbcb4a9cf840b2c352e7de1d6c2c5b3df37ff99b5c7e271e8f3a8 |
|
MD5 | 6b97daad89f46bbfab31b5acb2a3d7ce |
|
BLAKE2b-256 | ffb6dce95e6ac5d94536d05346368accf6db0c7a0acfc3c27097e8166fc0dc86 |
Hashes for pycryptodomex-3.6.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc07c8b7686dd7093f33067a02b92f4fed860d75ad2bcc4e60624f70fdb94576 |
|
MD5 | c215fa92ce0147fd39b0abca2bcff286 |
|
BLAKE2b-256 | 3fe868dafb5c0034329d2c710d1c0a31247ef28ad189559dfb9203dc447e8c26 |
Hashes for pycryptodomex-3.6.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e15af025e02b04b0d0728e8248e4384d3dc7a3a89a020f5bd4d04ef2c5d9d4c |
|
MD5 | d2e812f66a878b8d0ee9250fae45949b |
|
BLAKE2b-256 | 99f7b7a69948d2493aa5e4223049baa890de4389f4aaa0f80b2e9b6f6d4e2dad |
Hashes for pycryptodomex-3.6.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afc44f1b595bd736ec3762dd9a2d0ef276a6ac560c85f643acfc4c0bf0c73384 |
|
MD5 | 120611491efec74b88f3bb014cd982ea |
|
BLAKE2b-256 | 02b0106b491a27408083f21ac3215f4e3f8b9ba6759bda573a2cb9f77c82eba7 |
Hashes for pycryptodomex-3.6.4-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f921219040ce994c9118b7218b7f7b4e9394e507c97cfc869ce5358437fc26cd |
|
MD5 | 4f862b3af4fbdbbf968bb47db67d52b0 |
|
BLAKE2b-256 | 8fc1ceb66e43bc9da4abfe4a5d2482c4d231c0424551b1d8860b22bd9c2e8cf5 |
Hashes for pycryptodomex-3.6.4-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99bda900a0bf6f9e6c69bdeb6114f7f6730b9d36a47bc1fe144263ce85bfc403 |
|
MD5 | 2f927d4baea622170812d77a673b4469 |
|
BLAKE2b-256 | 795a16c16ef20b4ee4a2bc8f43663132b901c1aee1f1649fa779138982111f47 |