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 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 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 pycryptodomex-3.6.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd7fc58c11afc299e2aeb11827b940fb3715ba2e5ab5a6a5693af095742e9b4c |
|
MD5 | e3554eded0af007af84658271276cb02 |
|
BLAKE2b-256 | a96860fc4c4cb2c07ba5a0a948a6eba5b449e610cb3167694051f66f70375a90 |
Hashes for pycryptodomex-3.6.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73ae29574d19e76a3033e93e88d4bfe7decce11da45f5e3fc695dfb7899dae53 |
|
MD5 | e3edea62d29c2f72f6fbd51ee1d32a28 |
|
BLAKE2b-256 | e9c07d89a4c5a87e1ed11efdf54fd7f6cfea377f8602aa90954aa588186f70ee |
Hashes for pycryptodomex-3.6.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a854546fe8d6081cae9a1c1980862e2f0477f81117c123a82468aefc3d4db5c |
|
MD5 | 63186f0edf1e8de878dd0be023f3c9b1 |
|
BLAKE2b-256 | 88677208c17079c54c78845e9a544390925cc5b707937b6894322f7bd2365953 |
Hashes for pycryptodomex-3.6.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11756a831e0cc2549fb67be50aca040495d7e20a47b2ab1cf77f0db6eaae75e0 |
|
MD5 | ed71948b3ba067441b184ae4773ff066 |
|
BLAKE2b-256 | 149a8896540244cfafcf797bc6867cee8d93629b198d8ae28b7569e1c98c5ec0 |
Hashes for pycryptodomex-3.6.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f934e15b59c3073e8957ab5b027bb32b38b04bc03aa5180610b2bb6164c43b3b |
|
MD5 | 755c4bd5bf4279bf8bde3224d5366411 |
|
BLAKE2b-256 | 4fbf1c1d10b10e816735c550eaa396e844bd5c94e022ef9464fb4654f0a6139a |
Hashes for pycryptodomex-3.6.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d815ac94211ae6b15a92dc8242eb81369214e4c6805d4ff663a14f7707f0212 |
|
MD5 | aede4cf28f35fa66fe5885b31266c0f9 |
|
BLAKE2b-256 | d70f88f1612cfe732cc19a3c86b1bc344a8b34a4db36907a4c20d0d650f9a801 |
Hashes for pycryptodomex-3.6.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d0b011a1514db2bee5db6dd02cc2672f2cb490df57652d3e506069e1129ed01 |
|
MD5 | 003609d4d001452c83cebab38ffc3912 |
|
BLAKE2b-256 | 73ec793c24861f4e6c2b65471f75ee0bb7808c2c2b0482a6bc7ae7cd55e88806 |
Hashes for pycryptodomex-3.6.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c2894facf93b6a99a8c2c34b9d998bbd79db32dedb06d89dc8ab0c198fad687 |
|
MD5 | 04c114649134930f7b6e4a7375296c17 |
|
BLAKE2b-256 | 0fcb51863bc4bac3146b587c56da34ab349d2bb3e54b3b3423553980e64c5b8d |
Hashes for pycryptodomex-3.6.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7597afd495ece825cd0de04e237d45d32554443f32cb332e2de0e0adc08d76e1 |
|
MD5 | c3d8fe95c18dbe4b90f2c97032082bb7 |
|
BLAKE2b-256 | 236f5e7c75baeb71c709b05c7d684bdb298709763f4f48d69e7cd078427d996a |
Hashes for pycryptodomex-3.6.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b28998827c363ebb445a3b5b98946a3df68ef9059ed0cd6d13c3d9b4b4b6c944 |
|
MD5 | 4c6e5e6092d0cac98ec8afdb795fb032 |
|
BLAKE2b-256 | 755dc769d2ca821d723f3353e3672484dba34280d8ee977e57ad19d1dbd3106e |
Hashes for pycryptodomex-3.6.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffc2b73e58bb44515cce14faa395c427c8e0bbdc6bac9a4e7674c7135d6ffad5 |
|
MD5 | ebae0561936a7b952616f506099fef2f |
|
BLAKE2b-256 | c47818cbf137941b4bfc57e141c901be713acacfc9cab9345d4093af1b1689dd |
Hashes for pycryptodomex-3.6.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce93300534b1c282e6c8971252f8e5887d20d8669e0af3d2a06cef1d47a03e97 |
|
MD5 | e9d43062b0f1ac6039a8e30005b32734 |
|
BLAKE2b-256 | b9f1333e78b9daac45bad14e274338bdcf3ea009202483ad4c5eeb4550e02c58 |
Hashes for pycryptodomex-3.6.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18837dbf05ed97bcb169b1f5465ec2569985f25c787cc91d89b363217f31f63b |
|
MD5 | 40fde1b9e837a842abe1b7c8b6cbc847 |
|
BLAKE2b-256 | c0bc09013f458ca6b2e5cefe1462b69aba21f4b022e639b315dac252f43852b1 |
Hashes for pycryptodomex-3.6.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87630254a6ca33c98dcd590e02c70edf3af3b755c06d7a991421955c00f4e8c2 |
|
MD5 | 7a3bc5128e6d3efb7170aebd94f11289 |
|
BLAKE2b-256 | 15d31eb95c54bdbda15cb425e4f241dc7de16ea09cbe1a1a6960c84136bbd71d |
Hashes for pycryptodomex-3.6.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e59e995a417e86b11ddb66d95e975bc012290989d8f8b1696a7956b990c29ee |
|
MD5 | 54c19df1f82d45a74c1a9a55d76aadf2 |
|
BLAKE2b-256 | 9bb471cb058ebfd1c201adccd93ff89e913818cbc9be4439650806e7415aa372 |
Hashes for pycryptodomex-3.6.0-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb2c76cabe94335247c562d58a54eb62088b1ae93f0417785738508d2319dd48 |
|
MD5 | 3f4f6b565243c5d75c5b9b0db0d0d1da |
|
BLAKE2b-256 | 7b08bc1213a6f71852fa2959fac928930f6abc38a4042272303e84eb5afa616b |
Hashes for pycryptodomex-3.6.0-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41a5bd025c4d93d7ef8147709da5ec0ef9101b963ca52851a67befea8c94f9ec |
|
MD5 | 19367db692b17b97dc95207ecbda6c30 |
|
BLAKE2b-256 | 7daf3a9424b57a49111900711830ba67a5f3f252b6dd689840415a894c0b7b11 |
Hashes for pycryptodomex-3.6.0-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38feac59199ce6146a77550671c2db66ec48ce100688489640485dd658d7cf65 |
|
MD5 | 84ee0e58a5ea6e2df9acdc0949845b96 |
|
BLAKE2b-256 | eede976e4494c1a876aa1161b0679abde2bd69f4fca41bbe2327930ce5bdedaa |
Hashes for pycryptodomex-3.6.0-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a56672ae636de779563fe793cb6a473296f4f06e86c5e065e7a1378c4eb498f |
|
MD5 | 7ae636111149cf595637d4a984689448 |
|
BLAKE2b-256 | 1d3e3e94e06b9a485140d12f4d491a46d0f208027c3efc732dbfe1e7f9872a5f |
Hashes for pycryptodomex-3.6.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c63a12f6c3b17305ace17529b6a2afe60808e01beb5e0b8414532f28cfdbea4c |
|
MD5 | 0e258cdcf5106fdec483fb3e1f3014c4 |
|
BLAKE2b-256 | 1ee7bf9581178269fe9fdc944724af0b775796da26e9ab399203c088fab1e1fe |
Hashes for pycryptodomex-3.6.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adce464e726d2742275fcedf58cd2c099bc8d6daab49331fec9f59e4d6160cab |
|
MD5 | 167decf2bd969858e74f8e9c7ff89b39 |
|
BLAKE2b-256 | 35790da642d85ee60f2c8da846679488716c12e696a93fed407e09ebea1fe9c4 |
Hashes for pycryptodomex-3.6.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7433a59ce37d376d593424e8d3587dfd4d4bf294b5e787f4b22be875af1b82a1 |
|
MD5 | e4e9ef3002237a41ac052ccd6bc7e558 |
|
BLAKE2b-256 | 55b132095b76710a5a77206727f0f5ba56b5745375eaced90ff63e4891840c5e |
Hashes for pycryptodomex-3.6.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 398d7631c286572b0edf2a8fea00ce5ec2c140d0159e16096296ecbb2b62192b |
|
MD5 | ca007cc4ee978933fd26a68782b607c5 |
|
BLAKE2b-256 | 3fbe521cceff6a2c7a3e4f507ae1fbb718c1511e540adae550da5d818d29c440 |
Hashes for pycryptodomex-3.6.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d893c16f187c6f175cc5b84e1743cab1bc45f48b4fd52e8815e5e632eb55bb9d |
|
MD5 | 64b2c7d245c9389e29a019421269918b |
|
BLAKE2b-256 | 0606e13f4f995c7d894598f5902d358bfc8eb0b75de9db3926742b3ebf0c7e94 |
Hashes for pycryptodomex-3.6.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e185783b0461ae62cf7143117e8603363dfe66820436ed29ca18c8a4010d3252 |
|
MD5 | 6c0cb6022cbbaa93f2606e08aac45122 |
|
BLAKE2b-256 | e53069a5566e693f602e2fe650eb040bb593e26cf63a37cb6acc300b28dad82b |
Hashes for pycryptodomex-3.6.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27533f616df0da5964c1a1b9506b0d6c09f90dd5d22e44773871a1cba9fddede |
|
MD5 | b3e39f31fe974f0850bb5291b92b118d |
|
BLAKE2b-256 | fe9c487da551c05a9eed4d47c0d0bfec0ab74c82aa5cab94b3f459be89570511 |