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.17-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c84689c73358dfc23f9fdcff2cb9e7856e65e2ce3b5ed8ff630d4c9bdeb1867b |
|
MD5 | 82e38ded94925efd83f73b3df09f18ad |
|
BLAKE2b-256 | b93b0f4901806612cb9c9a20586c268f1b98497c6a65bd39dbc0ff7bb6694201 |
Hashes for pycryptodomex-3.17-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64b876d57cb894b31056ad8dd6a6ae1099b117ae07a3d39707221133490e5715 |
|
MD5 | 075b9a9f426469fde8997fea4b8148c2 |
|
BLAKE2b-256 | 3ef5bbc11cd3655ad93563defcab7894bdb0e71c9e77d9b86edac747215dd28d |
Hashes for pycryptodomex-3.17-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee8bf4fdcad7d66beb744957db8717afc12d176e3fd9c5d106835133881a049b |
|
MD5 | 21c655aedf9633a36c08922262ef40dc |
|
BLAKE2b-256 | 63f434b68753be7a5e727bffb6a336ca75715572c58b9649d96af6ba9af364e9 |
Hashes for pycryptodomex-3.17-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd29d35ac80755e5c0a99d96b44fb9abbd7e871849581ea6a4cb826d24267537 |
|
MD5 | a822b2cb7e49056c8e6956def137df12 |
|
BLAKE2b-256 | 7ed534375b3646bc3387f8b5e8ff5e5d95a625b683c04ad89eb06ac1de9157fb |
Hashes for pycryptodomex-3.17-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23d83b610bd97704f0cd3acc48d99b76a15c8c1540d8665c94d514a49905bad7 |
|
MD5 | df12ebfea163700e9e87581e89e60a64 |
|
BLAKE2b-256 | 730a6f78b1ec45ce22ed2e61185d52e55325f14f09ffcccfd938c0a20f9d7f0e |
Hashes for pycryptodomex-3.17-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67a3648025e4ddb72d43addab764336ba2e670c8377dba5dd752e42285440d31 |
|
MD5 | 09656737d40d6a72f910268c462be8e6 |
|
BLAKE2b-256 | 671dee1a7f2553433b31fc70731a2fe72a26f28fedc7e7933715d16c8da6567d |
Hashes for pycryptodomex-3.17-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40e8a11f578bd0851b02719c862d55d3ee18d906c8b68a9c09f8c564d6bb5b92 |
|
MD5 | dd7e93e79c079e5d65b91d212b31e75f |
|
BLAKE2b-256 | aeadc18d2eac9bf8053127146e0227bec0cd0a44e15fe51664c79cef11c8bf35 |
Hashes for pycryptodomex-3.17-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c4674f4b040321055c596aac926d12f7f6859dfe98cd12f4d9453b43ab6adc8 |
|
MD5 | 9064678d9574b5402f825c0d079928d6 |
|
BLAKE2b-256 | 2149bbde1ffbe18169916c8a26eb157ad97cab5f39d156d8e4b84afec8ac2feb |
Hashes for pycryptodomex-3.17-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 599bb4ae4bbd614ca05f49bd4e672b7a250b80b13ae1238f05fd0f09d87ed80a |
|
MD5 | 9838b3bfa87dcf80589982d6e08dd98c |
|
BLAKE2b-256 | 798b6ae6f03e3b09b6e480507a488ea58a00eae44063fb8fce39e6cb01533237 |
Hashes for pycryptodomex-3.17-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c92537b596bd5bffb82f8964cabb9fef1bca8a28a9e0a69ffd3ec92a4a7ad41b |
|
MD5 | 3b0d6c03e5eaa4648717776f8ed60341 |
|
BLAKE2b-256 | 806b98b59492a545da19f8c892904f18c4386adb11ee93cd3ec10083b80be44d |
Hashes for pycryptodomex-3.17-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4cf0128da167562c49b0e034f09e9cedd733997354f2314837c2fa461c87bb1 |
|
MD5 | a20293a7105b6f1836ee52d63391570f |
|
BLAKE2b-256 | 0c7c216750deab65e0e8a69b9b90d2bcdb18e9deabe30f4687773772010b0c9d |
Hashes for pycryptodomex-3.17-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b51e826f0a04d832eda0790bbd0665d9bfe73e5a4d8ea93b6a9b38beeebe935 |
|
MD5 | 072c8fb0ad0b0827c438d01eb00517d2 |
|
BLAKE2b-256 | aca4b2758579debd57abf5482a1f2f3a2a36c815fba9d6252fcd7fb5a7946aa7 |
Hashes for pycryptodomex-3.17-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32e764322e902bbfac49ca1446604d2839381bbbdd5a57920c9daaf2e0b778df |
|
MD5 | 44c831505e49af8ae34498e503be6f21 |
|
BLAKE2b-256 | 7f5fd28db7498fa8047d8b7a1a2a47a5f48e1007d2030340eb44cbf19c29b35c |
Hashes for pycryptodomex-3.17-cp35-abi3-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a6651a07f67c28b6e978d63aa3a3fccea0feefed9a8453af3f7421a758461b7 |
|
MD5 | d42a24e9d177082e0aa8ffee73ca7b83 |
|
BLAKE2b-256 | 86aaf7cfe88bc0de8fc64d7deb25e13fe200bc8ba8bda1a7a2f2c41d01b74505 |
Hashes for pycryptodomex-3.17-cp35-abi3-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6feedf4b0e36b395329b4186a805f60f900129cdf0170e120ecabbfcb763995d |
|
MD5 | 32a5e571537aad4f5ee9e5f85cff2386 |
|
BLAKE2b-256 | 727a142990b5e9ce6032065decfd617cc9bd650539fc72711730b74228ff5217 |
Hashes for pycryptodomex-3.17-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88b0d5bb87eaf2a31e8a759302b89cf30c97f2f8ca7d83b8c9208abe8acb447a |
|
MD5 | 7bdc865dac18019398822b121604e763 |
|
BLAKE2b-256 | 995407b44e8aec6cb303c9695561a6f50d4212e15989bdba7363517ada77f8b9 |
Hashes for pycryptodomex-3.17-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78f0ddd4adc64baa39b416f3637aaf99f45acb0bcdc16706f0cc7ebfc6f10109 |
|
MD5 | 56298a25a49ff45b8350487d646e0fce |
|
BLAKE2b-256 | 087c4b55006bc7615db176a52feb7ec49201048045dd08ec38bbeae2d59e2456 |
Hashes for pycryptodomex-3.17-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4fa037078e92c7cc49f6789a8bac3de06856740bb2038d05f2d9a2e4b165d59 |
|
MD5 | f1d7ad90b3e342cec57a5457a67a63cd |
|
BLAKE2b-256 | 37ba0a71535124f781bb8ced7028dd2b36be3835a854030eb55e5d0eb809d20b |
Hashes for pycryptodomex-3.17-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fa0b52df90343fafe319257b31d909be1d2e8852277fb0376ba89d26d2921db |
|
MD5 | 6cf3b23ce20e924e2889a6331287cf98 |
|
BLAKE2b-256 | 5171855ea0995a1e8afd79de2d762e2053d047b343ce50285c29ef19281908b4 |
Hashes for pycryptodomex-3.17-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55eed98b4150a744920597c81b3965b632038781bab8a08a12ea1d004213c600 |
|
MD5 | e8373f64f26a4ccf4a2b3fb6131eb215 |
|
BLAKE2b-256 | 78dbec162a8fa1c7c8e03488616a01de59bb752b985f1c507ffb127b40b9d456 |
Hashes for pycryptodomex-3.17-cp35-abi3-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d4d395f109faba34067a08de36304e846c791808524614c731431ee048fe70a |
|
MD5 | 72bca710637e6ea6e1516b6c94c75914 |
|
BLAKE2b-256 | 950cfe7dcd9942d3373ec91d0ca9eacb94f5e7204be2e08d92e98dfda01dbced |
Hashes for pycryptodomex-3.17-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cc28dd33f1f3662d6da28ead4f9891035f63f49d30267d3b41194c8778997c8 |
|
MD5 | 373bf27bb63135754533a5a730db9eb9 |
|
BLAKE2b-256 | 2bb0e237622b6e2631d9eaa7aa237a9f321299b9fe49500d0f56851eb1c703a2 |
Hashes for pycryptodomex-3.17-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a8dc3ee7a99aae202a4db52de5a08aa4d01831eb403c4d21da04ec2f79810db |
|
MD5 | 86cfc14e083b29eec3ccdac055013b59 |
|
BLAKE2b-256 | ad0bdf72e0e8d88a5292af108ae54c80dda7fbf034ca574906b574950608320d |
Hashes for pycryptodomex-3.17-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c23482860302d0d9883404eaaa54b0615eefa5274f70529703e2c43cc571827 |
|
MD5 | d339c0d6b240eabe0fb4ba5d125ba62e |
|
BLAKE2b-256 | 7d6e659b7cffab6914cb589ab8460eadd93b9670840c04d69490a506b6fd792c |
Hashes for pycryptodomex-3.17-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c2516b42437ae6c7a29ef3ddc73c8d4714e7b6df995b76be4695bbe4b3b5cd2 |
|
MD5 | ad91bb3ce30adcb09f6ef6c624b5edd6 |
|
BLAKE2b-256 | 2f6494bb7674fa02eac6564c0f5eab20d7d01cb60d4a457b17b14c7abbb8a367 |
Hashes for pycryptodomex-3.17-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d38ab9e53b1c09608ba2d9b8b888f1e75d6f66e2787e437adb1fecbffec6b112 |
|
MD5 | 357f5946293c2a5542764f7d411486df |
|
BLAKE2b-256 | 650a4759f7694cb4904d135041ba57371f1fdeb1e54086de205fd181d75f908a |
Hashes for pycryptodomex-3.17-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a57e3257bacd719769110f1f70dd901c5b6955e9596ad403af11a3e6e7e3311c |
|
MD5 | e983cc8fd70c3c2e85be8c8d9cbc90ee |
|
BLAKE2b-256 | 198267d95bde8d1fbadd8239c895fa5873ec001bc3f731bec5fca29dc9c7dfa4 |
Hashes for pycryptodomex-3.17-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f854c8476512cebe6a8681cc4789e4fcff6019c17baa0fd72b459155dc605ab4 |
|
MD5 | 9660c53a67f5b542ec87866537301837 |
|
BLAKE2b-256 | d172d9ed0f68dfdd7322c3e0e4bcb0139b172bb66159dd2a5a95c6e2ce6f7a23 |
Hashes for pycryptodomex-3.17-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db23d7341e21b273d2440ec6faf6c8b1ca95c8894da612e165be0b89a8688340 |
|
MD5 | b6b5865f1fb82e61b00809848316133b |
|
BLAKE2b-256 | a4abbde641549132cc3377ff75e0e5be7766a68e916a51817b51fe0a4ae891ee |
Hashes for pycryptodomex-3.17-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa937ff29d07a665dfcfd7a84f0d4207b2ebf483362fa9054041d67fdfacc20 |
|
MD5 | c4696c9e30ad4df62d343c85757a8336 |
|
BLAKE2b-256 | da5f4b904abe20347c88df413533ac88ad813e049639cc7e356673c8fe5fa450 |
Hashes for pycryptodomex-3.17-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab33c2d9f275e05e235dbca1063753b5346af4a5cac34a51fa0da0d4edfb21d7 |
|
MD5 | a91010de1f89856d23ecc5ebb947194b |
|
BLAKE2b-256 | 8b74731dc28961e5ec2da3a3fb504a934d125c2f69fa1433636754dddd4db22f |
Hashes for pycryptodomex-3.17-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12056c38e49d972f9c553a3d598425f8a1c1d35b2e4330f89d5ff1ffb70de041 |
|
MD5 | ae5cd5c4f6d705d80978e4e2961d9cfc |
|
BLAKE2b-256 | bae204a226505909388ec86c2bdd70c1199c575873e20591913bcec1439a2445 |