Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.7, Python 3.5 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-curves; Ed25519, Ed448)
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 and EdDSA
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.16.0-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ba28aa97cdd3ff5ed1a4f2b7f5cd04e721166bd75bd2b929e2734433882b583 |
|
MD5 | 4cea2506520e2c8833eb6286a10f92ef |
|
BLAKE2b-256 | 436fa802ca47be90b9ddb12ada1e9b04c3348be693214fe5cb7296a1712ac691 |
Hashes for pycryptodomex-3.16.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2453162f473c1eae4826eb10cd7bce19b5facac86d17fb5f29a570fde145abd |
|
MD5 | a97c198a0c3ebe405c5fe6748b0668d6 |
|
BLAKE2b-256 | 7eeded617116c8a6520e4f48483e59f1dec669037ce2ecc3042a58748d62a1c4 |
Hashes for pycryptodomex-3.16.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2b971a7b877348a27dcfd0e772a0343fb818df00b74078e91c008632284137d |
|
MD5 | 2ba1876728bc0c12354cd310fff86e00 |
|
BLAKE2b-256 | d4c10a040af326cc30b638ccab1220bffdfdc41a07b20a5b68cebf5083fa9a70 |
Hashes for pycryptodomex-3.16.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba57ac7861fd2c837cdb33daf822f2a052ff57dd769a2107807f52a36d0e8d38 |
|
MD5 | 2484d8519271d386c605f63be0ffe51e |
|
BLAKE2b-256 | 1bb52de3bb55434f907ebeef12cdb7d76ce80e5f6084725a4a0344d5aae96cd9 |
Hashes for pycryptodomex-3.16.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a465e4f856d2a4f2a311807030c89166529ccf7ccc65bef398de045d49144b6 |
|
MD5 | 77af69964191bba86b83db936bd1a63a |
|
BLAKE2b-256 | af75531f59f08805d5aa832aee179c9a89e005310d25e4c97ed4a6344238d52e |
Hashes for pycryptodomex-3.16.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 893f8a97d533c66cc3a56e60dd3ed40a3494ddb4aafa7e026429a08772f8a849 |
|
MD5 | 09b8ba3df9cccad8e5af3db875b99337 |
|
BLAKE2b-256 | 36a8bcec40040c406db97f17a4ace94ce6ea52662e501e47ad9dc1fd6a836bde |
Hashes for pycryptodomex-3.16.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dbbe18cc232b5980c7633972ae5417d0df76fe89e7db246eefd17ef4d8e6d7a |
|
MD5 | a3319b0b646803df450e6060bac641c7 |
|
BLAKE2b-256 | 4620159656548a85e89382e38469c6aabe91be27d44ece0053b3b6f96bc73a63 |
Hashes for pycryptodomex-3.16.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 231dc8008cbdd1ae0e34645d4523da2dbc7a88c325f0d4a59635a86ee25b41dd |
|
MD5 | ab06799512d1eb8072867fad6f8b9330 |
|
BLAKE2b-256 | 2e122d6cf2cfdf7c3b67fced83b3877594eca9e50229c1b396e215b1a2cc60bd |
Hashes for pycryptodomex-3.16.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | daa67f5ebb6fbf1ee9c90decaa06ca7fc88a548864e5e484d52b0920a57fe8a5 |
|
MD5 | c955c5db4dcc69e69b38c117de48f805 |
|
BLAKE2b-256 | 0ca773e17f18c43a7e0d3f583c7b99ea1fa66d312e8608d79f91bb9e1730b589 |
Hashes for pycryptodomex-3.16.0-cp35-abi3-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04610536921c1ec7adba158ef570348550c9f3a40bc24be9f8da2ef7ab387981 |
|
MD5 | 9c505b3cdb5e6913a88e8fb0d50b758e |
|
BLAKE2b-256 | b97957f0f7c8d971154e1883174cd8f2d2a5ef7abb160a66fd32728abefbf725 |
Hashes for pycryptodomex-3.16.0-cp35-abi3-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cda60207be8c1cf0b84b9138f9e3ca29335013d2b690774a5e94678ff29659a |
|
MD5 | 23dc6e1d1e2f4ca96e890925e19803e1 |
|
BLAKE2b-256 | e510dd517f66e49e7f434e8f7a60187c29d73ed7fc18e27819e0b6ed3462c987 |
Hashes for pycryptodomex-3.16.0-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7993d26dae4d83b8f4ce605bb0aecb8bee330bb3c95475ef06f3694403621e71 |
|
MD5 | 9dac06a3134a5beb198389cdfadac2d1 |
|
BLAKE2b-256 | 38e0567e7f95e399d3001dea85aaf41525085ccd4a3a9e95ab6b88e6fcd31ed4 |
Hashes for pycryptodomex-3.16.0-cp35-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70288d9bfe16b2fd0d20b6c365db614428f1bcde7b20d56e74cf88ade905d9eb |
|
MD5 | 5fdb26fad4e26f925eb3a94d388aa153 |
|
BLAKE2b-256 | 76dd7276f37251f84931bd97bb42fe10455cad782dcb9a38b9820f65d2a098e8 |
Hashes for pycryptodomex-3.16.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1619087fb5b31510b0b0b058a54f001a5ffd91e6ffee220d9913064519c6a69d |
|
MD5 | bdb899212c955e453bd7b91ebed25891 |
|
BLAKE2b-256 | cb5dbfb44a67cae89510fce065a2e2a8bb3bbc5c3b148715a0b04045b436829e |
Hashes for pycryptodomex-3.16.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22aed0868622d95179217c298e37ed7410025c7b29dac236d3230617d1e4ed56 |
|
MD5 | 5e11573985844e3ee2ee16be3bb30bdf |
|
BLAKE2b-256 | 042e72b100976b25bbe34984b7cbb0a294fd0b1e30ed2210df6e5507864b33ab |
Hashes for pycryptodomex-3.16.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0da835af786fdd1c9930994c78b23e88d816dc3f99aa977284a21bbc26d19735 |
|
MD5 | 45243834e3d90683ad34e4e4023e5cd5 |
|
BLAKE2b-256 | 70f50f2108fd00185226d3ab52d2b120e71043cd9e2fd5f01deff617623ffe9a |
Hashes for pycryptodomex-3.16.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0789a8490114a2936ed77c87792cfe77582c829cb43a6d86ede0f9624ba8aa3 |
|
MD5 | f39efa8e7497d988013bf4139be02b2e |
|
BLAKE2b-256 | 33296c79b3820f40d6560c112350898424955dcac4c79b215ca39954e5d753e0 |
Hashes for pycryptodomex-3.16.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e25a2f5667d91795f9417cb856f6df724ccdb0cdd5cbadb212ee9bf43946e9f8 |
|
MD5 | be2a0f75c3962bf029d4880bc6586675 |
|
BLAKE2b-256 | 355d5b014038010bea0b11eaabab9c706a2177a7b6538952f59091e9b326b550 |
Hashes for pycryptodomex-3.16.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ad9bb86b355b6104796567dd44c215b3dc953ef2fae5e0bdfb8516731df92cf |
|
MD5 | e5f9840bb5259c0d649abce4fd363909 |
|
BLAKE2b-256 | 52df08cf176aaece0598c5a217d18ffbcd020df3213a3ded5f1a474dd5bfa8cb |
Hashes for pycryptodomex-3.16.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dd2d9e3c617d0712ed781a77efd84ea579e76c5f9b2a4bc0b684ebeddf868b2 |
|
MD5 | cded7192e81e693d45970f7c2dd1bc4f |
|
BLAKE2b-256 | 550837fb8481d47a87a2c275cb4c80d3d57ee1f036f454e075a0e9abb06306b9 |
Hashes for pycryptodomex-3.16.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8851585ff19871e5d69e1790f4ca5f6fd1699d6b8b14413b472a4c0dbc7ea780 |
|
MD5 | a784268135af174d0c79bfc3e5a29cd0 |
|
BLAKE2b-256 | 8aef33ecf4a99af5c0750086b3545274b2ecbbb2e790f2385ec1815d8887834d |
Hashes for pycryptodomex-3.16.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1c0ae7123448ecb034c75c713189cb00ebe2d415b11682865b6c54d200d9c93 |
|
MD5 | b5961985e35ea740d98b6b5d6589854e |
|
BLAKE2b-256 | b3fe4548ef10ec836704df01fe2b6bbe568e87a2e5e6120ccd0619b2171058e8 |
Hashes for pycryptodomex-3.16.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce338a9703f54b2305a408fc9890eb966b727ce72b69f225898bb4e9d9ed3f1f |
|
MD5 | c27e347da2b279f7abadd1e0319c6bc1 |
|
BLAKE2b-256 | be6186d0af91c77bc0c23dc9ba71a2b97697dda9cbd1619470575c4c040b6de8 |
Hashes for pycryptodomex-3.16.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5a670919076b71522c7d567a9043f66f14b202414a63c3a078b5831ae342c03 |
|
MD5 | 3bf7140f37acd338d8e0b6d9d409270d |
|
BLAKE2b-256 | bdcf0e2d1bda04848bb67944021106986f4523e6cfbfdac335bf1f57573ede8e |
Hashes for pycryptodomex-3.16.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3d04c00d777c36972b539fb79958790126847d84ec0129fce1efef250bfe3ce |
|
MD5 | 6058a293cc6a4130f8a0ef45af64c8e9 |
|
BLAKE2b-256 | fe2ac4d7575cde5721e60f9ac1bc7fdaef3c60e6fb577cbc9eb2e8f6bc1be30b |