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.9.9-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7651211e15109ac0058a49159265d9f6e6423c8a81c65434d3c56d708417a05b |
|
MD5 | 5e7e618f808abcfb555b3a6286945034 |
|
BLAKE2b-256 | da77de9b324d3f010158a598763c397a7dab345b40e222b6638240514d70255b |
Hashes for pycryptodomex-3.9.9-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b696876ee583d15310be57311e90e153a84b7913ac93e6b99675c0c9867926d0 |
|
MD5 | de52ecd3867688f98ea06d305af1c59a |
|
BLAKE2b-256 | e1089f967dbe287c40ff9a219f51b9bdaa6143d2e98b55f42dd0662845fb35f8 |
Hashes for pycryptodomex-3.9.9-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c95a3361ce70068cf69526a58751f73ddac5ba27a3c2379b057efa2f5338c8c |
|
MD5 | 602042bbd54a6d6af0162ec08babb71f |
|
BLAKE2b-256 | 173a72257944395b4bea4b1d594568bbd1d4d8c93fee7074523aefc4e2172ddf |
Hashes for pycryptodomex-3.9.9-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9736f3f3e1761024200637a080a4f922f5298ad5d780e10dbb5634fe8c65b34c |
|
MD5 | 1a72860e6b2c6f02f97e705ba4529ae7 |
|
BLAKE2b-256 | fe4ebda524346a19af4cc9fd1304bd32de99a9cb54d7e608e28d77bac9f16d0d |
Hashes for pycryptodomex-3.9.9-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a88c9383d273bdce3afc216020282c9c5c39ec0bd9462b1a206af6afa377cf0 |
|
MD5 | 8f7bfb1230c2250ef49ba3f1cf61ba80 |
|
BLAKE2b-256 | 480622f680349b00d7622cb01f200b551fc379dbe576c13829bfa99c44067002 |
Hashes for pycryptodomex-3.9.9-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 836fe39282e75311ce4c38468be148f7fac0df3d461c5de58c5ff1ddb8966bac |
|
MD5 | ecc3a45f629a7faf8c13f3022b5145aa |
|
BLAKE2b-256 | ab73928aa2d366d06625c8cdac679e00121ef0040c15c0c392096e2aa1a90a7d |
Hashes for pycryptodomex-3.9.9-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2e853e0f9535e693fade97768cf7293f3febabecc5feb1e9b2ffdfe1044ab96 |
|
MD5 | 58d30916f6f4d2c2a8522ec7d980fe83 |
|
BLAKE2b-256 | a924167cf7718efbd38a6a527cd2dae298b502e4282a338d6fe99c4fb1cfd0f7 |
Hashes for pycryptodomex-3.9.9-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 404faa3e518f8bea516aae2aac47d4d960397199a15b4bd6f66cad97825469a0 |
|
MD5 | 0fefce493a7c193ea40e63416f5d9e2b |
|
BLAKE2b-256 | 06c8bdb8420837543a3c47f9a4f5bdcf36ff1f021391a6795caf6bd98d4a0bb8 |
Hashes for pycryptodomex-3.9.9-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65ec88c8271448d2ea109d35c1f297b09b872c57214ab7e832e413090d3469a9 |
|
MD5 | c2b76cf4d61f0e450376c1a41f087b6f |
|
BLAKE2b-256 | d7d5a5d162f75857ad79efde6806d00b2f5d766a6686d306043e826a7298a7e6 |
Hashes for pycryptodomex-3.9.9-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3547b87b16aad6afb28c9b3a9cd870e11b5e7b5ac649b74265258d96d8de1130 |
|
MD5 | 90ccdab0b9144104907e8b98c0c99943 |
|
BLAKE2b-256 | 7164a50e2e3c27d56ff516f82612128a78272f946395f07ddad0d5f67d1c950b |
Hashes for pycryptodomex-3.9.9-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15c03ffdac17731b126880622823d30d0a3cc7203cd219e6b9814140a44e7fab |
|
MD5 | 3ab4daa471df9d51c10d0c58e6c5b85d |
|
BLAKE2b-256 | a1a7d6e3ac27ac15867d0255f6ebb75db9149125d7ca78c47fa1eb1cb2154252 |
Hashes for pycryptodomex-3.9.9-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55cf4e99b3ba0122dee570dc7661b97bf35c16aab3e2ccb5070709d282a1c7ab |
|
MD5 | 97ab8f378db3dbd44d1e6a6785e9c70e |
|
BLAKE2b-256 | bbe83988f486c7a5a9e894ee68186a5a30e2c1a2419de67f59428911c2724b1e |
Hashes for pycryptodomex-3.9.9-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f81f7311250d9480e36dec819127897ae772e7e8de07abfabe931b8566770b8e |
|
MD5 | 73022b7169e5c75bb9530d6643eb826b |
|
BLAKE2b-256 | fd3f22e40cc1f4dffd9aa62305813fe66b20d7ef5ddb441655235f0e189f1e0b |
Hashes for pycryptodomex-3.9.9-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c885fe4d5f26ce8ca20c97d02e88f5fdd92c01e1cc771ad0951b21e1641faf6d |
|
MD5 | 01d7aa7dbff52e3e675c7a5c403403be |
|
BLAKE2b-256 | 8363aafc31a764970dbad3c1efe4fdb8c252002542cf0d32c5da2107c6b1146d |
Hashes for pycryptodomex-3.9.9-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f20a62397e09704049ce9007bea4f6bad965ba9336a760c6f4ef1b4192e12d6d |
|
MD5 | c38dcbbee145eb7fd180e0e4e5908a70 |
|
BLAKE2b-256 | bacee70064981a3832074c5c2bc1c1a83db9adf069461079da19ff36c8c12bcc |
Hashes for pycryptodomex-3.9.9-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bef9e9d39393dc7baec39ba4bac6c73826a4db02114cdeade2552a9d6afa16e2 |
|
MD5 | 35a87b05185692e361fba613413a26b9 |
|
BLAKE2b-256 | ea1736706d95105266f43e17c8b366075674fe6ca64fe59885b2fc181ff64d48 |
Hashes for pycryptodomex-3.9.9-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d62fbab185a6b01c5469eda9f0795f3d1a5bba24f5a5813f362e4b73a3c4dc70 |
|
MD5 | d8f1405dfe86cbb3b69b83ba378d77aa |
|
BLAKE2b-256 | 91b972839f50dde133920e635ec5ff7025d64535ca712cdee5fc6ce19bf9c52c |
Hashes for pycryptodomex-3.9.9-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28ee3bcb4d609aea3040cad995a8e2c9c6dc57c12183dadd69e53880c35333b9 |
|
MD5 | 91272945b0719f6388f37b45c8d1c58c |
|
BLAKE2b-256 | 73fea8bc923637e8e1ff2ccf9a49a36317d611fd93479905c18725d7ed085f3e |
Hashes for pycryptodomex-3.9.9-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 892e93f3e7e10c751d6c17fa0dc422f7984cfd5eb6690011f9264dc73e2775fc |
|
MD5 | e4e862f10837c0cd5c51d10ea01cb75f |
|
BLAKE2b-256 | f285b0aca80d498e887fe83e10f27997270aa58bddd4afda41f301237b104d46 |
Hashes for pycryptodomex-3.9.9-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20fb7f4efc494016eab1bc2f555bc0a12dd5ca61f35c95df8061818ffb2c20a3 |
|
MD5 | b00f7a7a7e8efd3ba3c2eaa358e8df8b |
|
BLAKE2b-256 | 201162a11c4b964eac3fbb804ada78094832ebc581efa894845043c81dde6f30 |
Hashes for pycryptodomex-3.9.9-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7cf1c14e47027d9fb9d26aa62e5d603994227bd635e58a8df4b1d2d1b6a8ed7 |
|
MD5 | eb1d4ce7956e14390e15d6b12fcf1ef6 |
|
BLAKE2b-256 | ff291541b26a2b679bafb124138c5f009ed7821d9d329536b79a313a9a1aa684 |
Hashes for pycryptodomex-3.9.9-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9aac1a30b00b5038d3d8e48248f3b58ea15c827b67325c0d18a447552e30fc8 |
|
MD5 | 9ff91da7e0c0c9a4063d236d1ed0f0c1 |
|
BLAKE2b-256 | ec6fa45fbcc5c4f5777265e6b3497385fba5caaa7e27d1710cf5f08e24992e46 |
Hashes for pycryptodomex-3.9.9-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4632d55a140b28e20be3cd7a3057af52fb747298ff0fd3290d4e9f245b5004ba |
|
MD5 | 9cc61554b5a9d3920a598268fec5ba16 |
|
BLAKE2b-256 | 440753006c906b764c40b049e5e2ed672bed1dc84df9e4d6fa9048392542913b |
Hashes for pycryptodomex-3.9.9-cp35-cp35m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 871852044f55295449fbf225538c2c4118525093c32f0a6c43c91bed0452d7e3 |
|
MD5 | 0e4bb49a8ec809640224a88950a7ec84 |
|
BLAKE2b-256 | 699f84f4e868196cb3cbf7a4cb557fff13317124dce8031f1cc5c63127be27b9 |
Hashes for pycryptodomex-3.9.9-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 305e3c46f20d019cd57543c255e7ba49e432e275d7c0de8913b6dbe57a851bc8 |
|
MD5 | 034975c36c4b3e69fbc3e4733c1aa061 |
|
BLAKE2b-256 | bcd2daafc7333ebf5edfb60b5f15bdf937934bc4e7e4ecec8e732ab200e90332 |
Hashes for pycryptodomex-3.9.9-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73240335f4a1baf12880ebac6df66ab4d3a9212db9f3efe809c36a27280d16f8 |
|
MD5 | 05c01da92a76cecabce4d2e17bd6bede |
|
BLAKE2b-256 | 6c5ad548ffa2e2eba83d22064ed5f1ff9bd40e1c2f202713584c21a72cbabd89 |
Hashes for pycryptodomex-3.9.9-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a385fceaa0cdb97f0098f1c1e9ec0b46cc09186ddf60ec23538e871b1dddb6dc |
|
MD5 | f97ee241fcc40af7978cad52466226c4 |
|
BLAKE2b-256 | 71240796071ddba15ab2d0b237301e1a18c44238593360f23182bdbfd52c358a |
Hashes for pycryptodomex-3.9.9-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3642252d7bfc4403a42050e18ba748bedebd5a998a8cba89665a4f42aea4c380 |
|
MD5 | 7cbb9f7987cb55c48b30592fe71e70c3 |
|
BLAKE2b-256 | 9d2391f2f9685770973bce12d425273b8e28a60d6c701ae5355797bcbb9d38d8 |
Hashes for pycryptodomex-3.9.9-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 934e460c5058346c6f1d62fdf3db5680fbdfbfd212722d24d8277bf47cd9ebdc |
|
MD5 | cacf655f6689382e049a38784a50251c |
|
BLAKE2b-256 | ef64e50a83c3cfb02df573e5ef005fba70a2d6887e77017e4fb54624593e85f9 |
Hashes for pycryptodomex-3.9.9-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1d38a96da57e6103423a446079ead600b450cf0f8ebf56a231895abf77e7ffc |
|
MD5 | 28822da44a6084d13dc87d3d2844b711 |
|
BLAKE2b-256 | f0e728400ed477da8fa0817ac8f1136169ba9bebf8e3d9cad01e3cdd27793174 |
Hashes for pycryptodomex-3.9.9-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2d1388595cb5d27d9220d5cbaff4f37c6ec696a25882eb06d224d241e6e93fb |
|
MD5 | 96d494e47b6355b5254c0e154a0a01a1 |
|
BLAKE2b-256 | c378fd56b8b3c4dd56dc4c405d130a6953e03072bd0fc1a8b23d332339415b92 |
Hashes for pycryptodomex-3.9.9-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce1fc1e6d2fd2d6dc197607153327989a128c093e0e94dca63408f506622c3e |
|
MD5 | 75c10e0dea7c2aca8eeab8c2cafb2ff2 |
|
BLAKE2b-256 | 38e5bb9b8029efb07df9ba9e0b81e05f9a7ec98d990356a3ed45b1816c9061d8 |
Hashes for pycryptodomex-3.9.9-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42669638e4f7937b7141044a2fbd1019caca62bd2cdd8b535f731426ab07bde1 |
|
MD5 | 7cd01c96fe052230f6f0492feba4bff9 |
|
BLAKE2b-256 | 92aa3dd51ef0b984f5dd37ccfa3f0ea97087429edff0fe029890137898cb8093 |
Hashes for pycryptodomex-3.9.9-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e486cab2dfcfaec934dd4f5d5837f4a9428b690f4d92a3b020fd31d1497ca64 |
|
MD5 | e1aa3724da96d9ff4a87a90340c81c73 |
|
BLAKE2b-256 | babd2d78eefa63fb7c7372547d846ded0b6b0cdc57b9c3023d5ea53238963048 |