Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.6 and 2.7, Python 3.4 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 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.7.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 863bd3ec670230b9819f7628956bae8d272da66ece650b4dcaea980f36801acf |
|
MD5 | 9601cfe9f675ee61e034a805f5fdf3bb |
|
BLAKE2b-256 | 266e9ece01dc14bc27758386bff12b6467059f4724546593ca82ac13e7b6771c |
Hashes for pycryptodome-3.7.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af71e061d198a423068f75cee18940371cb387604c4d6e1a94c1506e77ab3f44 |
|
MD5 | ed51d01a4884932e1621334692382164 |
|
BLAKE2b-256 | 411d0950763b2914e5d406bf76fddbe336b603f99cad79944576259f6745f7ea |
Hashes for pycryptodome-3.7.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e3f58fdb7dd81198a9fb17d20c30f84d5575e3fcadd5e2f8b119996ba41c8a1 |
|
MD5 | fa832bf635bcc118d70a829d05d33003 |
|
BLAKE2b-256 | 73aafa5f6b6fd50b95e666eace688449cf9ae7f94c9a3e0fb65de62f705987d2 |
Hashes for pycryptodome-3.7.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17fdd7bdd104a2ece0caa96cb5558a552fe45b5df3e6ff1f8bb6ce7b4449cfa9 |
|
MD5 | af6dc5f0d770b34c9f59132c8999e988 |
|
BLAKE2b-256 | 35d27db3fd32126598605b19f1c6064b6ecfb7c25efccd449f364226c67c6ca8 |
Hashes for pycryptodome-3.7.1-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f9a226b23a9e586f576fb8c3fc0f35a1864294f8d72baa665d0d74f9bf5c879 |
|
MD5 | ac81e071d7405bfaaf89380ce193c26f |
|
BLAKE2b-256 | eb4f4324a815709b595e0565791b65d0a3dae97113e211eb22d7a506d8f2fde1 |
Hashes for pycryptodome-3.7.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b88590d11790da7588fb5dcc56103155577c38f2e959dbed6fe87b0159048e4 |
|
MD5 | 5b5386a8999c0a56bee27c8769abbae9 |
|
BLAKE2b-256 | e1fcc63d12fa553101183be379dc1df14ca673bbcff0ae83b3eaf095c5700d9b |
Hashes for pycryptodome-3.7.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c76277ff1257c95ff3737b0c3e087b4088bb6c8c8b128150d61221f3fb2a16cb |
|
MD5 | eb0d26397d193b74654ff2370476c4a8 |
|
BLAKE2b-256 | 940d56e10bf73df5784bb8f31921963e0e931792ace2dbba58d478ce1d6c36f6 |
Hashes for pycryptodome-3.7.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 273e735708dededb04147f24be84d29296fedf867b0dfdf1b01e601c37cdd5fa |
|
MD5 | f2ef2b9f4637cfca554ab4621782c468 |
|
BLAKE2b-256 | 852ef8e6a152326b3bb5772fb99a8ceb126d246be593fe68bc298c969c273006 |
Hashes for pycryptodome-3.7.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24ac90c5ba3bd0dc8f3d97eaecad416579af839938af0969b6edd3128184357e |
|
MD5 | 43b398dd6b5ca6769104fb1744da633e |
|
BLAKE2b-256 | 7b6edef28200bc9b5b43a7954efb89b192707877f0a6987bfa838889a50cd652 |
Hashes for pycryptodome-3.7.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4360c0c94b3a4284dd0e590d399e25959d7f5ab1fa0b5949b42f40a8fb6f9aaf |
|
MD5 | 4fe8e1bcc935907320c9b46be1af02ee |
|
BLAKE2b-256 | 5b96e0a8ba8ce06e80703448c68c4a88441d35bd58effe4ec86f674a290c1fa1 |
Hashes for pycryptodome-3.7.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86ab14981da571d819dd686c305c07e85b599d728730e0038f1aeba22c7346f2 |
|
MD5 | 176aab3dd6b12dac1a64ae8d788060ce |
|
BLAKE2b-256 | a26f8ea73b2ea4bfee62822a4ec5bf0dc0dc50d6a54944283eedcd235b138bde |
Hashes for pycryptodome-3.7.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fa93587fc668e9c9e0a0e9dc8a9a8e30204800d8aaa8012e7e8673982ce649f |
|
MD5 | b0484fcc8beff4578b4abb68d51c89c1 |
|
BLAKE2b-256 | 2e6d60bf7ef707c4b9ec107efb0b6da5687b26f9bef562b1acd15f021350be63 |
Hashes for pycryptodome-3.7.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0b38150041650df6dee8dc64393edc852395bb0030e07de47fcacffb2bd6abe |
|
MD5 | d310110aeb458bff8753c1cbb01536e9 |
|
BLAKE2b-256 | 21d7ca227bc38d25ad7738361bac961559f9ab79a10c2caeb9073fde7dff2294 |
Hashes for pycryptodome-3.7.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 454794e18bb43e7f670a3c569fff9881ebb95dc30763b31df10e505a6475d373 |
|
MD5 | 059303bb3b0e487f0b645507389a0e61 |
|
BLAKE2b-256 | 2bf6e2ccfb006b5441769c25d2c9a7b8f081b4a8ea35ec58327987c6506fb81c |
Hashes for pycryptodome-3.7.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4659130497976dacbdc21534ce6ff53d96ce926ad02247156a685cb7328602ef |
|
MD5 | c6ebe78be0c6b00f48a9cd4939337b07 |
|
BLAKE2b-256 | 20464da04c949b093742b0b6c125b9b29e663fc4766d3ca8f9959d13d141b6b0 |
Hashes for pycryptodome-3.7.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 212d4f9dc4728d97ddc84214a65dbdb67910c4f0f3bd77e786480f889ecbfb17 |
|
MD5 | 504f405b4bfb7bbf85ff7354e52a6af9 |
|
BLAKE2b-256 | 63a456b123920ed046b922d493127f6bb6a9d0fd803a1816449eb82b06f25bc9 |
Hashes for pycryptodome-3.7.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11509609a2a35c525b9f657d2d5d38875fcdf081ef026b8c309ab5bff5187871 |
|
MD5 | d8146c8ae9fcce48833d85c7835f963a |
|
BLAKE2b-256 | 6e63b8e047ee22c57cbc2d63ddb72ff7fffc1d23a90300d27ce43eb3c078cb96 |
Hashes for pycryptodome-3.7.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4732ae6634f5ba3c482bbc3e2f41c88e656205904f4979e93450333f135c1c4a |
|
MD5 | ec6f9b59e19de50a1c8fb907ec55a60c |
|
BLAKE2b-256 | 5747ca6654f5f6c0ad3c3c08d7064ee1cc7d14f22895e2f0b215c70940ed7560 |
Hashes for pycryptodome-3.7.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc16e42470813a1778b6520b5eb53e6d02d9886937cb8793e6da0b8ecf5e502d |
|
MD5 | 596e7ecea9d4969523cc1762aafc0c28 |
|
BLAKE2b-256 | 823cbda4df544e88921442274bfa1fa601b9a9bcb6f8139cc8a74c1b5f5e0c61 |
Hashes for pycryptodome-3.7.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9927fa146cf9e0918dfce65524fe67d82b02e1eaad8c72aaf3c96d888d9ce291 |
|
MD5 | 5b001b9d2aebec4fe66efabd1ac9d492 |
|
BLAKE2b-256 | fae1fb74442718e0f092ce09a69c9e1aab464da0ccff8d63627afeffde866971 |
Hashes for pycryptodome-3.7.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 687d04769747c35e8b46b984e33ce8aebb4c345f323cf0bcd48fba90953a0d5d |
|
MD5 | 5854303387bf1431825461418686fdfa |
|
BLAKE2b-256 | 62ff8dff7622d3e9b0d5d66911971301c09a2189da7714139700fc5bffc9b38b |
Hashes for pycryptodome-3.7.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de341ce3c6cdc1d19537c6ae209ef98263e25d693e71df08ff773537f4fb84ea |
|
MD5 | a04ca20f0611a96330b589ea5c5b8012 |
|
BLAKE2b-256 | be6f754a66100a2c4e372f8d29b1cf34b7f7678143d68f64ce9ad88bf29f2576 |
Hashes for pycryptodome-3.7.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7eb6f053ea821faf4545cfe4b330a1eb723a744becb4adb292b62fc2c31f7e7c |
|
MD5 | 64a9f6129b3cb5c5e817430827be63bd |
|
BLAKE2b-256 | 17ed76fabef233ec51392cdf4f2917f21a29ccd6505d74320efd54d71eb77945 |
Hashes for pycryptodome-3.7.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0432037f41468372ae0edf11c975b0fad9fab60aceebe24d8e23bfbcbadf7825 |
|
MD5 | c0c1db36422938de5545e7c8b94dbe59 |
|
BLAKE2b-256 | fc87443ff9dcd13aa7c8727d205f207f37197e80dc44675215e73a2ed438c349 |
Hashes for pycryptodome-3.7.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8f133bdf32427e87615ad6b6baf05433e79130826cd5175c13a14e22c844eb9 |
|
MD5 | cb845a8f4179784a608c2dac016df6d4 |
|
BLAKE2b-256 | 50b7a8ecab9480a21b394a78af298faef7914c5294c373273c21d37a7a2256b3 |
Hashes for pycryptodome-3.7.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d66d401069b8b07e7b968291fda77ab14db72798efd95767edaf7ca649f4badb |
|
MD5 | d5b661cd66525a0dd5bda1907b5b1f68 |
|
BLAKE2b-256 | 4031068d3287958a8bb489a8e4be040316f69b4b7807c022e235aa61ca8e6ab4 |
Hashes for pycryptodome-3.7.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 627bdbb3a716d7b677788f67b4608a5d940094f77865244026958889d8c7e4cc |
|
MD5 | be4843af169707b8b8743cb948afaebe |
|
BLAKE2b-256 | 8454efd852bd0852d3ed10cc94bc6ea889b2eaaa16281c271ab9dbbd3d1ed1b6 |