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.20.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88afd7a3af7ddddd42c2deda43d53d3dfc016c11327d0915f90ca34ebda91499 |
|
MD5 | fcb729a4220ad5f2297e85f6daf79339 |
|
BLAKE2b-256 | e48a7c621942787a20d4cb7c32f0c49f183781c6b8753e6ba4f92e57a6d8b1f5 |
Hashes for pycryptodomex-3.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e48217c7901edd95f9f097feaa0388da215ed14ce2ece803d3f300b4e694abea |
|
MD5 | 366e0352a0464feeb4f5026506bfe72f |
|
BLAKE2b-256 | c9f383ffbdfa0c8f9154bcd8866895f6cae5a3ec749da8b0840603cf936c4412 |
Hashes for pycryptodomex-3.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d00fe8596e1cc46b44bf3907354e9377aa030ec4cd04afbbf6e899fc1e2a7781 |
|
MD5 | b0f74a12bc6ca059d55f96fed5eff118 |
|
BLAKE2b-256 | c99dc113e640aaf02af5631ae2686b742aac5cd0e1402b9d6512b1c7ec5ef05d |
Hashes for pycryptodomex-3.20.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2e497413560e03421484189a6b65e33fe800d3bd75590e6d78d4dfdb7accf3b |
|
MD5 | 3a47295f7365a769732175e17d70c4fa |
|
BLAKE2b-256 | ebdf3f1ea084e43b91e6d2b6b3493cc948864c17ea5d93ff1261a03812fbfd1a |
Hashes for pycryptodomex-3.20.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69138068268127cd605e03438312d8f271135a33140e2742b417d027a0539427 |
|
MD5 | d8749bd7d5bb6885923a4c31a171cc20 |
|
BLAKE2b-256 | 4a7b881c25d94c821a83eedfa1a9193ff32f3436853f2daf7ce91a0d3d1aa74c |
Hashes for pycryptodomex-3.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0daad007b685db36d977f9de73f61f8da2a7104e20aca3effd30752fd56f73e1 |
|
MD5 | 56c12132c9a48456020897e6afdd132a |
|
BLAKE2b-256 | f5403458a828982897272417e0066cccdb56cb0adc4085bcbf4b9abb12169e16 |
Hashes for pycryptodomex-3.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dcac11031a71348faaed1f403a0debd56bf5404232284cf8c761ff918886ebc |
|
MD5 | 2bc192a62204c15e008b1591469f2c47 |
|
BLAKE2b-256 | da09e6c6430ddbfdd09a3750fc235f6d8e61d74eac29cb3346d4fd3123b8b2b3 |
Hashes for pycryptodomex-3.20.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3584623e68a5064a04748fb6d76117a21a7cb5eaba20608a41c7d0c61721794 |
|
MD5 | a2d32742e1dd4cd29e62e52401e3fb13 |
|
BLAKE2b-256 | 75f06bc54273b32e9e3272c40dd985ee5076c93708d4695c185daab0e6dfa862 |
Hashes for pycryptodomex-3.20.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19764605feea0df966445d46533729b645033f134baeb3ea26ad518c9fdf212c |
|
MD5 | 3c2b026001a1fa7caf97af60bca56618 |
|
BLAKE2b-256 | 5e6a04acb4978ce08ab16890c70611ebc6efd251681341617bbb9e53356dee70 |
Hashes for pycryptodomex-3.20.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1be97461c439a6af4fe1cf8bf6ca5936d3db252737d2f379cc6b2e394e12a458 |
|
MD5 | 7d7acedc7d5f84116a90c8657650406c |
|
BLAKE2b-256 | e7c59140bb867141d948c8e242013ec8a8011172233c898dfdba0a2417c3169a |
Hashes for pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a47bcc478741b71273b917232f521fd5704ab4b25d301669879e7273d3586cc |
|
MD5 | bf27bab62adbb0b917f11d133168d536 |
|
BLAKE2b-256 | b2e81b92184ab7e5595bf38000587e6f8cf9556ebd1bf0a583619bee2057afbd |
Hashes for pycryptodomex-3.20.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c39778fd0548d78917b61f03c1fa8bfda6cfcf98c767decf360945fe6f97461e |
|
MD5 | aedd47815cc5d3ae5cb8a768fb6862fc |
|
BLAKE2b-256 | b01c375adb14b71ee1c8d8232904e928b3e7af5bbbca7c04e4bec94fe8e90c3d |
Hashes for pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a7a8f33a1f1fb762ede6cc9cbab8f2a9ba13b196bfaf7bc6f0b39d2ba315a43 |
|
MD5 | c678278002868d35cf6747141828e445 |
|
BLAKE2b-256 | 487d0f2b09490b98cc6a902ac15dda8760c568b9c18cfe70e0ef7a16de64d53a |
Hashes for pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c682436c359b5ada67e882fec34689726a09c461efd75b6ea77b2403d5665b7 |
|
MD5 | 500fe9e8342b30a30d7152f7f640ee04 |
|
BLAKE2b-256 | 8dca7f296284fad77182ad2b2c198a7ece14b04cc9e6e905b1082c015f2254d3 |
Hashes for pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25cd61e846aaab76d5791d006497134602a9e451e954833018161befc3b5b9ed |
|
MD5 | bc248e6b985332dd32f92e4b990d7095 |
|
BLAKE2b-256 | bb29fb592db3f98b1ed330561518ff4706e869045b0cf27632a4310444731aa1 |
Hashes for pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bca649483d5ed251d06daf25957f802e44e6bb6df2e8f218ae71968ff8f8edc4 |
|
MD5 | 718890859b6edc558bebc93255a431a6 |
|
BLAKE2b-256 | 207a3162173af8597f0399b45c6aaa4939ccae908476fdf1b3a3cc30631fc9fb |
Hashes for pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91852d4480a4537d169c29a9d104dda44094c78f1f5b67bca76c29a91042b623 |
|
MD5 | 792ab12fc461308f1c3d952b0fb86a7c |
|
BLAKE2b-256 | 4eb991af61ec562b87c0932122666603a37cd17f991bc05faf9123b598d1e518 |
Hashes for pycryptodomex-3.20.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e186342cfcc3aafaad565cbd496060e5a614b441cacc3995ef0091115c1f6c5 |
|
MD5 | 581363edb63952de74e55e6153cacf9b |
|
BLAKE2b-256 | 1b43e67f7767a76db1067008127a04617165579e6a65b5c3acb230c7383ca514 |
Hashes for pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ee7696ed8eb9a82c7037f32ba9b7c59e51dda6f105b39f043b6ef293989cb3 |
|
MD5 | 5fef5b07c0c63c984ce7267f9b566b90 |
|
BLAKE2b-256 | 4cc49b1e8fca01c4b5a0e1c6f52ba19478b2692af4694afe8c89ebbe24348604 |
Hashes for pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59af01efb011b0e8b686ba7758d59cf4a8263f9ad35911bfe3f416cee4f5c08c |
|
MD5 | 80857e318cd20a66c214da4270cf37c1 |
|
BLAKE2b-256 | 7a09668b587ddaf2aa0f94ea45bca73e7c564816fd9329a05e8f7f870425981d |
Hashes for pycryptodomex-3.20.0-cp27-cp27mu-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 108e5f1c1cd70ffce0b68739c75734437c919d2eaec8e85bffc2c8b4d2794305 |
|
MD5 | f9356898c8fd04d36d192e4c06d20334 |
|
BLAKE2b-256 | f205453d1add08d064b01922c4b3f3457f1904e23047e6dcb17cc2cbc8292aa1 |
Hashes for pycryptodomex-3.20.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62a5ec91388984909bb5398ea49ee61b68ecb579123694bffa172c3b0a107079 |
|
MD5 | 351a7e9b699c45aa78b182b3752787aa |
|
BLAKE2b-256 | 0389cfc274c534f202c6b24b801045290c83334086371ef70463b0670c1a35e9 |
Hashes for pycryptodomex-3.20.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 653b29b0819605fe0898829c8ad6400a6ccde096146730c2da54eede9b7b8baa |
|
MD5 | a3cc2238f643306ba5be22f9620742fc |
|
BLAKE2b-256 | 0ce822cc901dff55d6cf8294751bc6b70a4821c2de6f5e7038f26bc761b7d5c9 |
Hashes for pycryptodomex-3.20.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76bd15bb65c14900d98835fcd10f59e5e0435077431d3a394b60b15864fddd64 |
|
MD5 | 6f9bb6977aacedc5b252ed55ef1669e8 |
|
BLAKE2b-256 | 0355818c7b011d7a34a48a6aab11913243b6fb3a050a19c931d2ef51444c5ed8 |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbe71b6712429650e3883dc81286edb94c328ffcd24849accac0a4dbcc76958a |
|
MD5 | 7a1400e6dcb864ee7628f711ae48d636 |
|
BLAKE2b-256 | c4cade4c22af3f2d3453f75f43b79992c1a83b82435442b2340d65b2a467fc39 |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8af1a451ff9e123d0d8bd5d5e60f8e3315c3a64f3cdd6bc853e26090e195cdc8 |
|
MD5 | 54135841cefa38a3d0efee693ff73aac |
|
BLAKE2b-256 | df4987fba13e761cc3aecdb7c8fef75be054126f1c8f632baef146a08ef540e3 |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc3ee1b4d97081260d92ae813a83de4d2653206967c4a0a017580f8b9548ddbc |
|
MD5 | 9826ff160b52cbadb7f930b1fb4efc44 |
|
BLAKE2b-256 | f552e2d914e6df315a0a18d2fbd450465894688966c113fc6593416da677d51f |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7805830e0c56d88f4d491fa5ac640dfc894c5ec570d1ece6ed1546e9df2e98d6 |
|
MD5 | 2db321be6ede6e7f9dbd01890e0dc0dc |
|
BLAKE2b-256 | b4b81c2667fa0d2948dc9f400219321626042cb1b4c6010f647fb98cefaaed5d |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ee606964553c1a0bc74057dd8782a37d1c2bc0f01b83193b6f8bb14523b877b |
|
MD5 | 267ee2be3958ecfa66d0655894c6ddff |
|
BLAKE2b-256 | 960b38f7c54cb9336a78edbf28f7bf4c42859b6184ea28f63c8637bc0ef5d14d |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff5c9a67f8a4fba4aed887216e32cbc48f2a6fb2673bb10a99e43be463e15913 |
|
MD5 | c55973d1f1ba4d049378bf8acd6dbcc3 |
|
BLAKE2b-256 | 01c1cdc8792637296edbea837ef93634f62fc2851a06ad607f819653713573cc |
Hashes for pycryptodomex-3.20.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 645bd4ca6f543685d643dadf6a856cc382b654cc923460e3a10a49c1b3832aeb |
|
MD5 | 582f52ebccfb4678fc00103a415656ce |
|
BLAKE2b-256 | f13d6a9365a06d4ded44221b18337f7fc7a78ba87920e849c5ba85cc1eaf067a |