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 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, 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 pycryptodome-3.14.1-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fb90a5000cc9c9ff34b4d99f7f039e9c3477700e309ff234eafca7b7471afc0 |
|
MD5 | a5ddc48e494dca41cb7e527d102791e5 |
|
BLAKE2b-256 | 7a9697a29b95cebfca188722bb45addbe510ffa3bec4c600eb56631ae14bea32 |
Hashes for pycryptodome-3.14.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 893f32210de74b9f8ac869ed66c97d04e7d351182d6d39ebd3b36d3db8bda65d |
|
MD5 | ec31e762a8966cecc130ef438b1b324b |
|
BLAKE2b-256 | 55edb876da890da4690a93d82ef2b14f042719356de3a3d9a6dc954c6e655a7d |
Hashes for pycryptodome-3.14.1-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0c04c41e9ade19fbc0eff6aacea40b831bfcb2c91c266137bcdfd0d7b2f33ba |
|
MD5 | 5cca47c1397ccba78cd7c4a5d731c4ac |
|
BLAKE2b-256 | afff78c46da9fdf0a0291e72cccbf5f584c576918369957bb7177751b0a3ea96 |
Hashes for pycryptodome-3.14.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9924248d6920b59c260adcae3ee231cd5af404ac706ad30aa4cd87051bf09c50 |
|
MD5 | 4c48ce0d478dc0364ce1bb0ccea9de2b |
|
BLAKE2b-256 | 25b2ae9594fd12c20a28daecffc3280de2a07cb86d328161965010740ef46793 |
Hashes for pycryptodome-3.14.1-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f572a3ff7b6029dd9b904d6be4e0ce9e309dcb847b03e3ac8698d9d23bb36525 |
|
MD5 | dbebfcbf4428c225c2693fa47507c06e |
|
BLAKE2b-256 | df839d9563e567f6f9a7a39eb846e78045601a9777b44b8e810d1e92837b83ce |
Hashes for pycryptodome-3.14.1-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12ef157eb1e01a157ca43eda275fa68f8db0dd2792bc4fe00479ab8f0e6ae075 |
|
MD5 | 0d8b9ea24ca57f204f04baecf5346d00 |
|
BLAKE2b-256 | bd02bc416536fc4a9ef3a3ecef3292145b5c9d4f8fb3122bc2b8ffedc8cb1e44 |
Hashes for pycryptodome-3.14.1-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69f05aaa90c99ac2f2af72d8d7f185f729721ad7c4be89e9e3d0ab101b0ee875 |
|
MD5 | 03d5add87069a606168458106e1885f6 |
|
BLAKE2b-256 | 01aa680e29a0db5bcf8db54fa4f14d7da3aceff652e07236ecbc823ba80a03b1 |
Hashes for pycryptodome-3.14.1-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 028dcbf62d128b4335b61c9fbb7dd8c376594db607ef36d5721ee659719935d5 |
|
MD5 | 90d234f9a67e08e9168c578cd0c4ef1a |
|
BLAKE2b-256 | 9d12c6fe1649d1efe57731494a44d8a32de043355a5a1e20b4dd4762efbfc452 |
Hashes for pycryptodome-3.14.1-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea56a35fd0d13121417d39a83f291017551fa2c62d6daa6b04af6ece7ed30d84 |
|
MD5 | b3d09a9e0a6b9e6a8214862982d483cd |
|
BLAKE2b-256 | 198145b2ea1fd90d7caa0e5aa36a373d136f7e4c07c129f3018c89e699777cf8 |
Hashes for pycryptodome-3.14.1-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53dedbd2a6a0b02924718b520a723e88bcf22e37076191eb9b91b79934fb2192 |
|
MD5 | dfdc7320341869a27e256c0d5fb1a7ab |
|
BLAKE2b-256 | a6e921e3c81ec8f5dd3f7453625985ea649e06280a17dba5c07ee3be7a39ea49 |
Hashes for pycryptodome-3.14.1-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 924b6aad5386fb54f2645f22658cb0398b1f25bc1e714a6d1522c75d527deaa5 |
|
MD5 | a39d79bf52f7b5261d66809c9fb5440d |
|
BLAKE2b-256 | c6ff670f9102b40b19fe53a701c51c89e4455e72198ff0a291980a7a9a9ea55c |
Hashes for pycryptodome-3.14.1-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b5c28058102e2974b9868d72ae5144128485d466ba8739abd674b77971454cc |
|
MD5 | 685c74626bb5620225e4cdcf33e90a20 |
|
BLAKE2b-256 | 716b965be3bec8fc1f6013739fea2bba86cf43a3be09ab7e29bd2134829c7615 |
Hashes for pycryptodome-3.14.1-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e24d4ec4b029611359566c52f31af45c5aecde7ef90bf8f31620fd44c438efe7 |
|
MD5 | 3129ad5259b355b2617f56deeb8ad839 |
|
BLAKE2b-256 | 875f4a1909afa2f8e29eb0e90aeab958898023eebeb07b1a14d1335f590fcefa |
Hashes for pycryptodome-3.14.1-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e64738207a02a83590df35f59d708bf1e7ea0d6adce712a777be2967e5f7043c |
|
MD5 | 1878bc4d0479369d7d509ac9c40ec4d8 |
|
BLAKE2b-256 | a6e7a9f558ff1ddef20469cf500e13493bcff1a968714a4881cc0460e6597ed6 |
Hashes for pycryptodome-3.14.1-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ec761a35dbac4a99dcbc5cd557e6e57432ddf3e17af8c3c86b44af9da0189c0 |
|
MD5 | 2d0fa13ac2898a1a0d78fdb1587008fe |
|
BLAKE2b-256 | 0f594ecad81bbbd26ef8a5a345c7dce8e186e3e306cfdd46cf7dbc72376e61df |
Hashes for pycryptodome-3.14.1-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2772af1c3ef8025c85335f8b828d0193fa1e43256621f613280e2c81bfad423 |
|
MD5 | d8136a0705d5624c288d84a3cd3d27e2 |
|
BLAKE2b-256 | eaec1ec2d8d294dc204a23de8d8b077940a297ce93b755de08b6c4ceba7c82ac |
Hashes for pycryptodome-3.14.1-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27e92c1293afcb8d2639baf7eb43f4baada86e4de0f1fb22312bfc989b95dae2 |
|
MD5 | c709d3183f0403561507595a829ee318 |
|
BLAKE2b-256 | 41b8e4ae32009251b17675f6f0ca20bde1f29383f634ff490c2f3c76630652f5 |
Hashes for pycryptodome-3.14.1-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1b7739b68a032ad14c5e51f7e4e1a5f92f3628bba024a2bda1f30c481fc85d8 |
|
MD5 | bfb9ac761c3f0ea0b6a01dcf06e83074 |
|
BLAKE2b-256 | 856f40d25882a7de0592558fad13ac62d8e384501a9281761c0e49042bec87af |
Hashes for pycryptodome-3.14.1-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2562de213960693b6d657098505fd4493c45f3429304da67efcbeb61f0edfe89 |
|
MD5 | 80bdf044c8b8f982e41870e394b2c115 |
|
BLAKE2b-256 | bdb4924601991c0e8c50ca19a9ab3e17a2e21f684fc00e6622aabbe3e41c9ecb |
Hashes for pycryptodome-3.14.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 766a8e9832128c70012e0c2b263049506cbf334fb21ff7224e2704102b6ef59e |
|
MD5 | e365552d247fd42806c53607b3b2856b |
|
BLAKE2b-256 | d830408df93c9aea733e311736df2f110e7a58ee9c94419606b86a3e9c684e5f |
Hashes for pycryptodome-3.14.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcd65355acba9a1d0fc9b923875da35ed50506e339b35436277703d7ace3e222 |
|
MD5 | d91f9fcdf1b78658207bf3bdca775b69 |
|
BLAKE2b-256 | 20b41e2071b7b684b62ae5b3f3c0e1fb748bd1dfbf509e4824b75dff0d7b6106 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c880a98376939165b7dc504559f60abe234b99e294523a273847f9e7756f4132 |
|
MD5 | 02ca2e04da735773b68215e2c90ec750 |
|
BLAKE2b-256 | c2a177375b7c5b710f0d03c1c805cc1bbf770c53c35b76de97b821fed9c35d80 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36e3242c4792e54ed906c53f5d840712793dc68b726ec6baefd8d978c5282d30 |
|
MD5 | 8d51bb832a70ea76bf37ab462b352732 |
|
BLAKE2b-256 | e170adbbdda9411e06cf3c374edb1db5f0746029f38c562e422f9a1130d8e7c4 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50a5346af703330944bea503106cd50c9c2212174cfcb9939db4deb5305a8367 |
|
MD5 | 3836cf69585c2afb9cc9e612b1f8936d |
|
BLAKE2b-256 | 4bc2fa262024549f11f92eecce24609814de8759608e971e3213d053dcd884c0 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a36ab51674b014ba03da7f98b675fcb8eabd709a2d8e18219f784aba2db73b72 |
|
MD5 | 32b1b730af4c357d3d61702f8db6e92d |
|
BLAKE2b-256 | 109d9e33cd1a12d36f27180d75bd950134240712e902349cd273df7543ba9cd2 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce7a875694cd6ccd8682017a7c06c6483600f151d8916f2b25cf7a439e600263 |
|
MD5 | c1888cdc4cda96dd68ebb555d512d462 |
|
BLAKE2b-256 | d5ae92769deb3f32ea03918179fe683ebf86eac5a0b5bdd75d289a5ece8b7c70 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f403a3e297a59d94121cb3ee4b1cf41f844332940a62d71f9e4a009cc3533493 |
|
MD5 | df3df8125d7a524c3f1d2a6889e84f0e |
|
BLAKE2b-256 | 8e2f3b3a6123c2d22346d487e997645f17faab163a5df88b13b8f69852776ef7 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aae395f79fa549fb1f6e3dc85cf277f0351e15a22e6547250056c7f0c990d6a5 |
|
MD5 | 0e68081e9297be293e86999fd5ddf141 |
|
BLAKE2b-256 | 7872955cfcbb4bf76288413152c7ce6f93d9751509482a886cb8d34b79834da9 |
Hashes for pycryptodome-3.14.1-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75a3a364fee153e77ed889c957f6f94ec6d234b82e7195b117180dcc9fc16f96 |
|
MD5 | 9e470ee8848a0439e45e2207dfd82524 |
|
BLAKE2b-256 | 0cedd122d75fb96a6410eb8eb02c8b55833abf1d6d237744a8ca40a974760262 |