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 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, 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 pycryptodomex-3.9.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ce5fec5990e34e3981ed14897ba601c83957b577d77d395f1f8f878a179f98 |
|
MD5 | d46abfef179399a6d00d705755f9a8f9 |
|
BLAKE2b-256 | 120dc11d5fdc304b38968a530f87ab8bf6167111d1c346c0090bd4f493f09a4f |
Hashes for pycryptodomex-3.9.4-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0943b65fb41b7403a9def6214061fdd9ab9afd0bbc581e553c72eebe60bded36 |
|
MD5 | bc466cd5c5133b3ef90166b9a5a95d52 |
|
BLAKE2b-256 | c703b50a7b9e4d2118746ff71bce3e1bafdd4f05bf4b7043d3875f1e72cd6cc5 |
Hashes for pycryptodomex-3.9.4-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 612091f1d3c84e723bec7cb855cf77576e646045744794c9a3f75ba80737762f |
|
MD5 | 93e8839be496300a390c80a54a253ce2 |
|
BLAKE2b-256 | 2495983ba010373686bcf91752952650211f8386be2954724ded2839983cf674 |
Hashes for pycryptodomex-3.9.4-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a6b74f38613f54c56bd759b411a352258f47489bbefd1d57c930a291498b35b |
|
MD5 | 719ec05fa9116045ebd0be2cafe1fa00 |
|
BLAKE2b-256 | fc8111f2d52a8f4c393e56f9516bdc5e3a1c0092632025e31c15e57131c26b42 |
Hashes for pycryptodomex-3.9.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53e9dcc8f14783f6300b70da325a50ac1b0a3dbaee323bd9dc3f71d409c197a1 |
|
MD5 | 4d9c1d503108a12c68bd092c7113e21f |
|
BLAKE2b-256 | 946722cedada58f5fdac75a0cef1cd36118e16257a22d1f20b0a9cae744a4ad8 |
Hashes for pycryptodomex-3.9.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60f862bd2a07133585a4fc2ce2b1a8ec24746b07ac44307d22ef2b767cb03435 |
|
MD5 | 1a02ea8425a8526ff1d37ce1c66cce9e |
|
BLAKE2b-256 | 44d314529fc45fe742207adb3a85df6674c51c4e6e95366b2a84516d3696b40f |
Hashes for pycryptodomex-3.9.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5a13ebb52c4cd065fb673d8c94f39f30823428a4de19e1f3f828b63a8882d1e |
|
MD5 | 7151feafee2142c9726e23a9e1632593 |
|
BLAKE2b-256 | 984566e7fbc1306eaf51421a913e2e21743ab50aee2567350626810724fe7b91 |
Hashes for pycryptodomex-3.9.4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee40a5b156f6c1192bc3082e9d73d0479904433cdda83110546cd67f5a15a5be |
|
MD5 | 97bb0b8799f1930bb496c303e1a274e1 |
|
BLAKE2b-256 | d1bd243160735ad33982800042165a252a0f0fd442de76959e3c737c5288c0d2 |
Hashes for pycryptodomex-3.9.4-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583450e8e80a0885c453211ed2bd69ceea634d8c904f23ff8687f677fe810e95 |
|
MD5 | c1dbbde27b5884e9e057c0dd75cfea65 |
|
BLAKE2b-256 | e0f2c7226a285a7559b0dbf961d48200a578b06ca94111f6aeba073af6d03f9b |
Hashes for pycryptodomex-3.9.4-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5519a2ed776e193688b7ddb61ab709303f6eb7d1237081e298283c72acc44271 |
|
MD5 | f18317b2d965683a981ab8642817a373 |
|
BLAKE2b-256 | 597b3b8b6d26f8ea2199b2c2aa103cb90444312d3343a2d1f95ee8335810a1f0 |
Hashes for pycryptodomex-3.9.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a77ca778a476829876a3a70ae880073379160e4a465d057e3c4e1c79acdf1b8a |
|
MD5 | 9f67f4c9ab22df203ca2a284ab87cdc6 |
|
BLAKE2b-256 | 704a1d958778879710f373c8b0635d315e7d789ac60b6cb60e20da5a66ffd183 |
Hashes for pycryptodomex-3.9.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 347d67faee36d449dc9632da411cc318df52959079062627f1243001b10dc227 |
|
MD5 | de8e5dbed3c17f1108ec84b8ffd2729b |
|
BLAKE2b-256 | d71ade93b2330b74d4c58ea7c7caa9698783ac5a2cd9632c44a80ede452a67c4 |
Hashes for pycryptodomex-3.9.4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30a8a148a0fe482cec1aaf942bbd0ade56ec197c14fe058b2a94318c57e1f991 |
|
MD5 | b928503f3041936664a532d88e74b53f |
|
BLAKE2b-256 | 46a004a009917f8946e0e2aca0768bb703767c3845c700ac8e3d6589ce0c9026 |
Hashes for pycryptodomex-3.9.4-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45f4b4e5461a041518baabc52340c249b60833aa84cea6377dc8016a2b33c666 |
|
MD5 | 1d9e706bd6e02a6f12ae18c94097f807 |
|
BLAKE2b-256 | bbe13826a8a7a86a7ecc002512706b94bf8af3257fe299e4abafb7ec7938d7d0 |
Hashes for pycryptodomex-3.9.4-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f5f260629876603e08f3ce95c8ccd9b6b83bf9a921c41409046796267f7adc5 |
|
MD5 | 0519a4a0e723c4184343ee3a23162154 |
|
BLAKE2b-256 | ba720ff803aedbf1740b97a99ff626a01c2f5e9a37d978dfd949b7ab318bded4 |
Hashes for pycryptodomex-3.9.4-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e56ec4c8938fb388b6f250ddd5e21c15e8f25a76e0ad0e2abae9afee09e67b4 |
|
MD5 | 4e00796a9dbda310e7b041b5da04bac4 |
|
BLAKE2b-256 | 76a448f844598e164e58a3af5e68c3aae2fc90473c867ee6bb922ded69b415f0 |
Hashes for pycryptodomex-3.9.4-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a1dbb5c4d975a4ea568fb7686550aa225d94023191fb0cca8747dc5b5d77857 |
|
MD5 | 59fe7fe87de75eef9af7dc2ccb34815a |
|
BLAKE2b-256 | e79d24604f3eed8cc232ab094b51a218e89eff112810da3868efac8cd42452ad |
Hashes for pycryptodomex-3.9.4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 629a87b87c8203b8789ccefc7f2f2faecd2daaeb56bdd0b4e44cd89565f2db07 |
|
MD5 | 4135c3476b69f78ac04a6e9cdc354d8e |
|
BLAKE2b-256 | 1ec0459bf69d3907ecd280d465e31140d36810178c858aaa7d1a599c89242126 |
Hashes for pycryptodomex-3.9.4-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e8092651844a11ec7fa534395f3dfe99256ce4edca06f128efc9d770d6e1dc1 |
|
MD5 | fafb4eed312af805558672d298a794cc |
|
BLAKE2b-256 | 1519d03dbc7d19e2c19fde7769bbaeeff0016acc597cfe17eb689b7d6bb97d9d |
Hashes for pycryptodomex-3.9.4-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4717daec0035034b002d31c42e55431c970e3e38a78211f43990e1b7eaf19e28 |
|
MD5 | e05a09467f0ec58985dac6d2e834cca3 |
|
BLAKE2b-256 | c7d94469b3c1abe3e65a2a7ccf3050bc9a225c2635bc846a1704308aa69c0fed |
Hashes for pycryptodomex-3.9.4-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32fbbaf964c5184d3f3e349085b0536dd28184b02e2b014fc900f58bbc126339 |
|
MD5 | de8f49af4157ed4254333bfd8e560052 |
|
BLAKE2b-256 | c14f3225bb2d3551813cbd7817c1f83cd35b902af6c8d92b6232eba5416341c3 |
Hashes for pycryptodomex-3.9.4-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef63ffde3b267043579af8830fc97fc3b9b8a526a24e3ba23af9989d4e9e689a |
|
MD5 | 63f94a2492853d6d6cba321b1ec1e486 |
|
BLAKE2b-256 | 0faa4cf4ee20fef8cc587b204e3329e89a293ef827fbff46608d4e8f6f2f9a49 |
Hashes for pycryptodomex-3.9.4-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f43f1608518347fdcb9c8f443fa5cabedd33f94188b13e4196a3a7ba90d169c |
|
MD5 | b0e96ac4bd63b908881092f3532778f6 |
|
BLAKE2b-256 | 6a1a4969cd8d6e77c971d7ec8f9425e618bdc4001a24cecf852bd68136e3440c |
Hashes for pycryptodomex-3.9.4-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e13cdeea23059f7577c230fd580d2c8178e67ebe10e360041abe86c33c316f1c |
|
MD5 | beb91e22b03625b6e29aa1f4c9a3e990 |
|
BLAKE2b-256 | 8fa4c45e25c34e77783998d380f2a81f68f04bc74963d235308b83fbe761b8a6 |
Hashes for pycryptodomex-3.9.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a1793efcbae3a2264c5e0e492a2629eb10d895d6e5f17dbbd00eb8b489c6bda |
|
MD5 | df9893dfd17ecafe998d89e6b76a9e2c |
|
BLAKE2b-256 | 457bb86084ba5abec94055dd5997b57efa5bc4bc6114401c2011704895599892 |
Hashes for pycryptodomex-3.9.4-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9f7be3d19f79429c2118fd61bc2ec4fa095e93b56fb3a5f3009822402c4380f |
|
MD5 | c20375e4fe1c31ffbd1484ab13b9b917 |
|
BLAKE2b-256 | be2c75a4c4151fb079b07116916f838fcd925df1f9631e7b93025ed968d29a8a |
Hashes for pycryptodomex-3.9.4-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e87f17867b260f57c88487f943eb4d46c90532652bb37046e764842c3b66cbb1 |
|
MD5 | fb71edbdcab351c0eb0b4c87684c92ef |
|
BLAKE2b-256 | 0e6a1f5a2343b83eead54a3002273e4dad1d6a56ce9c147416bea541a1efde6a |
Hashes for pycryptodomex-3.9.4-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e45b85c8521bca6bdfaf57e4987743ade53e9f03529dd3adbc9524094c6d55c4 |
|
MD5 | be7969bf20a001938298dcb283f5886f |
|
BLAKE2b-256 | 0f53648ef121f0f4555750edb058569288b066a0a7555741e33a6eb0d1ae5de4 |
Hashes for pycryptodomex-3.9.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51a1ac9e7dda81da444fed8be558a60ec88dfc73b2aa4b0efa310e87acb75838 |
|
MD5 | c22ff9be1739bc878c5be7d5e06ace34 |
|
BLAKE2b-256 | 48ce0c19b2d25b2bdfab08cedcd5dda2a43365c4e5d062fbc7285ab38cb361c5 |
Hashes for pycryptodomex-3.9.4-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc15a467c4f9e4b43748ba2f97aea66f67812bfd581818284c47cadc81d4caec |
|
MD5 | f4b9d7a9073922a22ee4187e7f59cb9f |
|
BLAKE2b-256 | 819c0b5addd099061f819bd6a7e5e604fbc4bc9d31a3d163c6d97651113c8f9d |
Hashes for pycryptodomex-3.9.4-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17a09e38fdc91e4857cf5a7ce82f3c0b229c3977490f2146513e366923fc256b |
|
MD5 | 6301dc38dc0552802604b7bb7209725e |
|
BLAKE2b-256 | 91e924f9d1fb22e356290566314806af2ba55c1a00ce5a30107491e65ad381c0 |