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 pycryptodome
All modules are installed under the Crypto package.
Check the pycryptodomex project for the equivalent library that works under the Cryptodome 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 pycryptodome-3.6.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 108652deb58d5daabf8cc1f31b821b9c9ee25101249ea6d88d09bb9de6cbeb07 |
|
MD5 | 76791708e4b2e511cb44cd59fba3dc5b |
|
BLAKE2b-256 | 07b463893f052bbbcfb55917ce90d43ac5013e350e5c7beb883023713eae35a9 |
Hashes for pycryptodome-3.6.5-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77d9314b9e186290ae6b8bfd121587795ff169cade73ba9f4973f60860dda3dc |
|
MD5 | 198928893011d9c69d801f96abae7284 |
|
BLAKE2b-256 | 695c540af0e79a4bd2e1fdbff2bdf64938aca77f207066f5a870526684622339 |
Hashes for pycryptodome-3.6.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8f11bee8b3df13cfa00c64b4ae99aef49199609342cd99bcef4d9fcd9e76267 |
|
MD5 | 6a2f16d1a819b46093a7d1f2c5e535a5 |
|
BLAKE2b-256 | a907c8ef7e4cd464330f954c3392228e775908303cde5883543bc3641a1864de |
Hashes for pycryptodome-3.6.5-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bc42b15c3e5dded13140a668d91cdfbec401d5e8e33bdc04eccfaddc6572d9d |
|
MD5 | cc778fb577641edac854650ac865c1c8 |
|
BLAKE2b-256 | d17d9e6e1ac2446a87210988f6654ec50756a3e8863cfa4f9b83db2822ccb490 |
Hashes for pycryptodome-3.6.5-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9562bce6deb18653594e78e3fa35e4446ccb54f5f1f24db3a7c08d059cb72ec4 |
|
MD5 | f3ca29cd9a1e833ea3ef48e9f3b1e3b4 |
|
BLAKE2b-256 | ce325b46686c8688720768df648c6df63b4269b5c329998f3572038eabbff97c |
Hashes for pycryptodome-3.6.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4f302ad323b8d0a4c31efe20727c1f367696b2bfd4d92a26ad974e3284ee783 |
|
MD5 | 12cbe04a0ca93bbde51e5d742f9c667a |
|
BLAKE2b-256 | 725e6ea8475f5f98bc99619cf3448f2013bfba7a44a5aa7ef5d7b1f53fd67b6d |
Hashes for pycryptodome-3.6.5-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abbb361c739b1d4af5a1e92cf21325f3a0408de83aa52aaaed94dfcd664df8b1 |
|
MD5 | 16f3980e8927c100cc95617eea64c1d9 |
|
BLAKE2b-256 | fa499376acb466a746d78e8ee9f7e3a3de1c41beceef4910f6eb6aea5bcec3f4 |
Hashes for pycryptodome-3.6.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d62febf35707621a02e87bf4ea0ba590cc39c5c326e1fbd8a77b7e068134fb5 |
|
MD5 | 0f864a532fbaef277ce1cda6615f8227 |
|
BLAKE2b-256 | c034f8f67f609f57c46836687b48e8d51da46a074a4c43eaf6599339d43acc08 |
Hashes for pycryptodome-3.6.5-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08b5fe4679f0abf933cb51601c0fd1eaa0162218e5376216b52d67ec9e15fa87 |
|
MD5 | 8681646f1505f84cfaa31ab38bb6b45d |
|
BLAKE2b-256 | 59ec19e90ced069e88dae88d3c46d07c18b4028a787d447009ee6d47cf08bc6d |
Hashes for pycryptodome-3.6.5-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 111e05763f5834e4a05845ba6eff51db40d767314c9488dcc1ae7ac244b36001 |
|
MD5 | c7c09cc07352462c5ca4c398f2831375 |
|
BLAKE2b-256 | 66f8908fc5da717f230b4bf2f7005490ea85bcfc9df22005867419990bdd484d |
Hashes for pycryptodome-3.6.5-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fa6a292aa91f2be89f36844bb442a6e922a7facd82ce6a473949a08d7acb371 |
|
MD5 | 05b0f478b05987766622ea3f605cac51 |
|
BLAKE2b-256 | 2d6f16c9b06273232cda442d048cd1bc35d08f376c7269e8de246c6c34dd11a0 |
Hashes for pycryptodome-3.6.5-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 242bc6384fc7acdcfad657921dca0d85d8a7de524463faa3b3a8d43c4285c689 |
|
MD5 | f62634e0c8327914726e63362f03502b |
|
BLAKE2b-256 | 411a99afaf2bf46a6c53606b7d40c578097fc2cf1f1f8eaf31b821dc8cc66fc8 |
Hashes for pycryptodome-3.6.5-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bd87846f42d54f5d19ddee234fc7d72afe84a57e2394e2e95b1bc63efaf8d16 |
|
MD5 | ea3d2064a4f2a0fa4a9e6b5e3c667b0a |
|
BLAKE2b-256 | 6694d019eb23ca29b49e67adce8d00e92820adbbacf743e72edf8e565b64a47d |
Hashes for pycryptodome-3.6.5-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02efa83b54371c468710ab2046ce2e254b512ebc2b1ce0d0d39a27b99c3b4b5d |
|
MD5 | 7097e06f7c600b7ed07a15a23bc95bf0 |
|
BLAKE2b-256 | e90d04b3d85fb728fc64cbe903e5dc257cb1b4e7f488bfcd832b6526bae6557c |
Hashes for pycryptodome-3.6.5-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e14dd6090dd88d4155451ced752d900a0d646c6fb74a772a5b68ab24fcb1c38 |
|
MD5 | 5ca14998d98ad5177f13a608fb3afd43 |
|
BLAKE2b-256 | 9c2f9dac9bafae118fa3e1f041b8f4d3e5d75e6d47871b46242d8956c8fa6d09 |
Hashes for pycryptodome-3.6.5-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b923b83e5a338800ae44d716b2aa22942b0d1a77261a431398ffb9703dda2722 |
|
MD5 | 3b421803b92d6f08da49ec9ffc11b2e8 |
|
BLAKE2b-256 | 4f5fee48ae3e044f3d9fb19dc05bd1bcd70ab7b35ad9ebc27d8f664ed3656d4f |
Hashes for pycryptodome-3.6.5-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63de75b4639d3f916e13bfce77ea29bcc7c946a43a3ddb53131d0bda1612a704 |
|
MD5 | 444ee2cc0373c5b3aea32b166fa8591e |
|
BLAKE2b-256 | a68ae9b28f880c326ee2123749b5473ab01ab917e2b24ee29a58cb583f3f7be0 |
Hashes for pycryptodome-3.6.5-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76fc24aa3f2661680c590e90d716e66f5798e0c789554069483ce8644359be92 |
|
MD5 | ac8faff9f0ee8c9840c297db29872c8d |
|
BLAKE2b-256 | 8b7393d66182c97c780134dd922fa770e2b4de04933cfe1bb44a71d4e9d72008 |
Hashes for pycryptodome-3.6.5-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1f31152f3703c4f1ccbd8069b888da2c402b963aa653c914191cb9a41e69e29 |
|
MD5 | 885414239488b21e4bcb14399b2da785 |
|
BLAKE2b-256 | 94fd18d9a9cd153a1880222cf352540422b5d54a72989a34ff1577145cd9e5c7 |
Hashes for pycryptodome-3.6.5-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c98aa60c77418e5630c68e53ff18082e1c61f02136f3c6c06a9a456274db2cf |
|
MD5 | 8e68ce5c08fd2179e44d101893c113a8 |
|
BLAKE2b-256 | dfe329ce5db8857e02336e5e6b617be998b4e1fe7e033b6410c8dfffa409af34 |
Hashes for pycryptodome-3.6.5-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 666ef7aa4bbd3fe450aeddcb693113bd5d702938b803ae6591873b52217f36c6 |
|
MD5 | 871dd436d6842b908a1de00bd59b0f88 |
|
BLAKE2b-256 | b96c2639e825e795d2e7df302c8d9c14129980c919ca8c2a6bd34ad4d738e555 |
Hashes for pycryptodome-3.6.5-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78d79f9f760826d52ffc155f91d33a34d03d84d989906791c15196070d1b626a |
|
MD5 | ca899dba798f1c3eed847b6ec747ea3d |
|
BLAKE2b-256 | 5531d59f1f7e41dcd047eca09d5b2693ffcef68ecbaa20c96600602fc6e109a3 |
Hashes for pycryptodome-3.6.5-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 942af9f49c7a04214bf7739c54ae0eab1bd5dcbcb267968cb7b88e4823c43496 |
|
MD5 | d44c743988882f3f34245482ee8763f7 |
|
BLAKE2b-256 | 5274a58f7e1980e5fb31a8b30cd590253b72f6c1264fd9a8667f6baa314e74c2 |
Hashes for pycryptodome-3.6.5-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 248260a614fd8a3b28e26bb76064cf4d590098c9d37cd53736d8e5f5551e8260 |
|
MD5 | 7d6a46ec8c67b667007ca367f896ac1d |
|
BLAKE2b-256 | 6e3dc76de1db76840cf41796e9c36597cc827766369252d44f1cb50c7c66f5d3 |
Hashes for pycryptodome-3.6.5-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c0b45de63a904b0d995e9a82e5440f45cdd24d99566c2dd014c701d53813603 |
|
MD5 | 077172924effdd15d362acbd3361a775 |
|
BLAKE2b-256 | 938c7d73005b84c94e99c586163a87ea4b6b9ed769c97261ed0833fc83924836 |
Hashes for pycryptodome-3.6.5-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14c4dab655b566b7b692bcfb9e9a48fd4a8bae18387e554f141203ae4737d263 |
|
MD5 | 8971472aaffdbcfdde77b043cd3aa1b7 |
|
BLAKE2b-256 | 30cf52720e4c430c5308ae7aa8c346dc7d90eac60476ff74df4979fbee91fe8d |
Hashes for pycryptodome-3.6.5-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc3d6c031b2cbb187e572d51b6b9454cc0052e87fb2f98a1699d4a58a613bcb3 |
|
MD5 | 74621a84762c7317856cc67b6b0db748 |
|
BLAKE2b-256 | a049c962ce0911707ec8aeba3e974961f65c0057a27fc758599094d70e09c04d |
Hashes for pycryptodome-3.6.5-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08bce87c4631259ccf539b79dfa159022b5f5509068cfdc98094b6f7aed59942 |
|
MD5 | bb3c7a1c24c8cd2a2ce0ae2e61326349 |
|
BLAKE2b-256 | 4a162d23a96310630dd2131042273164aa74abac620ce7f500e6a2a6b2d2ffb8 |
Hashes for pycryptodome-3.6.5-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69db6c222b689f746e092894c8f7b2b4e62e70bf8caf728baa93b3a40a2ecc08 |
|
MD5 | 13d8509b671cf03821e432fc931ccf42 |
|
BLAKE2b-256 | 2422f46e5023429d6dba1f148aad181be0bf0a0214ab86919ed5d421509f0865 |