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, 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.9.7-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c109a26a21f21f695d369ff9b87f5d43e0d6c768d8384e10bc74142bed2e092e |
|
MD5 | e99f3381ca8443ba83b83e9d47b963b1 |
|
BLAKE2b-256 | 5db3c6008b5993cd616e9078368e7a2b358588c10e4e6b4b8450ff433af9ed72 |
Hashes for pycryptodome-3.9.7-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ac729d9091ed5478af2b4a4f44f5335a98febbc008af619e4569a59fe503e40 |
|
MD5 | c088b8df8437878aa33aec54570e077f |
|
BLAKE2b-256 | d0af8621cab02c6ce4eac6c4b5e0839619fc7b1c715ed6aacedee628e0f83364 |
Hashes for pycryptodome-3.9.7-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09b6d6bcc01a4eb1a2b4deeff5aa602a108ec5aed8ac75ae554f97d1d7f0a5ad |
|
MD5 | 4c502696dd5f71a1900f6c229c7efddb |
|
BLAKE2b-256 | 8af7aafec50dba368be9c076c3ddf49e31a61370be8562d072784ef273727a7f |
Hashes for pycryptodome-3.9.7-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c818dc1f3eace93ee50c2b6b5c2becf7c418fa5dd1ba6fc0ef7db279ea21d5e4 |
|
MD5 | 653a2272ed3b6272cedf80e072fe9f74 |
|
BLAKE2b-256 | 1b2edd0fe63ca9bb803198ee05f689ac1027dac9230064ccf5ccc835f6350029 |
Hashes for pycryptodome-3.9.7-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be56bde3312e022d9d1d6afa124556460ad5c844c2fc63642f6af723c098d35 |
|
MD5 | 1279e89eae86504c5a7481970729b80f |
|
BLAKE2b-256 | 34d89e1e52598e26443f4af7ddfcba329e0355a80770f25ab3829a51e0ecf340 |
Hashes for pycryptodome-3.9.7-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 626c0a1d4d83ec6303f970a17158114f75c3ba1736f7f2983f7b40a265861bd8 |
|
MD5 | 30e264ad5e9d3678ba3cec130fbed7e1 |
|
BLAKE2b-256 | 950ddb748eb8f68a56cc97e2d0bc62c26186999e7a074e166fc6186ce3449ebe |
Hashes for pycryptodome-3.9.7-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f011cd0062e54658b7086a76f8cf0f4222812acc66e219e196ea2d0a8849d0ed |
|
MD5 | 35566b1a5eec132c1cf5c4ff01492ff0 |
|
BLAKE2b-256 | f9c13ee50f6326ec3fa33c4e3da098496d7a53a91fdbafacc0fb7112908f7ad8 |
Hashes for pycryptodome-3.9.7-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed5761b37615a1f222c5345bbf45272ae2cf8c7dff88a4f53a1e9f977cbb6d95 |
|
MD5 | 42c1caf86e46edd19cbc49f57398466b |
|
BLAKE2b-256 | 1b79f2a9bb60abd1ccd34006bab9a6ebbe03abe8c660366d20be390b85277fb1 |
Hashes for pycryptodome-3.9.7-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cff31f5a8977534f255f729d5d2467526f2b10563a30bbdade92223e0bf264bd |
|
MD5 | a19857e63a5ba4fc95d23e12e924d7dc |
|
BLAKE2b-256 | 6ccc3a33d060354044e197e202d185d8893ad29201fda6d9ac50e4bc19bf1726 |
Hashes for pycryptodome-3.9.7-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ec3dc2f80f71fd0c955ce48b81bfaf8914c6f63a41a738f28885a1c4892968a |
|
MD5 | 53acb9f2ac77083544fe00220d7953b7 |
|
BLAKE2b-256 | 0eb96cc7e451a7b35d9151d52ee904525aa8b883489095bfc61c3d45003c4f47 |
Hashes for pycryptodome-3.9.7-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6e1bc5c94873bec742afe2dfadce0d20445b18e75c47afc0c115b19e5dd38dd |
|
MD5 | 6b5c04d46ab2211add6344af9f3ef90a |
|
BLAKE2b-256 | 9215451dceb330d9ba78b4026022032e6114eeee03c0204e5e652b8b96d2d9a4 |
Hashes for pycryptodome-3.9.7-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f06556a8f7ea7b1e42eff39726bb0dca1c251205debae64e6eebea3cd7b438a |
|
MD5 | 2dfe62f606054bfc0f550b9a1361efe6 |
|
BLAKE2b-256 | cf09d7dbf689e55dbb5e9c919d3d6a2491a9983b0c72a4d34642f04936c26308 |
Hashes for pycryptodome-3.9.7-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9230fcb5d948c3fb40049bace4d33c5d254f8232c2c0bba05d2570aea3ba4520 |
|
MD5 | 6a7bbe2b63a8c856828250e32fdf4b9f |
|
BLAKE2b-256 | af16da16a22d47bac9bf9db39f3b9af74e8eeed8855c0df96be20b580ef92fff |
Hashes for pycryptodome-3.9.7-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fbc472e0b567318fe2052281d5a8c0ae70099b446679815f655e9fbc18c3a65 |
|
MD5 | f554fcaec29f36c2d549f8a3c8eeaf1e |
|
BLAKE2b-256 | 36a0ab233584edfae0b54257b9cd055afd426ccba507cd67b2b55ec06044962a |
Hashes for pycryptodome-3.9.7-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 767ad0fb5d23efc36a4d5c2fc608ac603f3de028909bcf59abc943e0d0bc5a36 |
|
MD5 | 7f00a8fabce6c1b58c2435b8a0f71ad8 |
|
BLAKE2b-256 | b1b2bfb57f69150322680c126f542e1a49fc1bd17c107e9b5e981ae79ecf9b42 |
Hashes for pycryptodome-3.9.7-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f4752186298caf2e9ff5354f2e694d607ca7342aa313a62005235d46e28cf04 |
|
MD5 | 65c6ae0857dad086f35e5fb81a1c81cf |
|
BLAKE2b-256 | 35ab359c48d10a7c5949ddf14c2ea9cd5b9280e104ea0d05a323de690957ee06 |
Hashes for pycryptodome-3.9.7-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d61b012baa8c2b659e9890011358455c0019a4108536b811602d2f638c40802a |
|
MD5 | 331eb55c61f21e5ad9aefe29562cd4ee |
|
BLAKE2b-256 | 421abe6685febb50c5e53d765df0bb6ba9a1b756b2125ffcff533c7caadadb20 |
Hashes for pycryptodome-3.9.7-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 426c188c83c10df71f053e04b4003b1437bae5cb37606440e498b00f160d71d0 |
|
MD5 | 4f7f2b2eef1d326837d1d29d24739ab1 |
|
BLAKE2b-256 | 1935ac8d015247230da8f38c8dba5f023d07366657b6f514359f6deaedc20ab1 |
Hashes for pycryptodome-3.9.7-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07024fc364869eae8d6ac0d316e089956e6aeffe42dbdcf44fe1320d96becf7f |
|
MD5 | 7ae55d87021fe3ab56856f95af3e112f |
|
BLAKE2b-256 | d20803940d3db1b62d92e149f820ef56242bda0ddce2f58eb82c03bb109ce787 |
Hashes for pycryptodome-3.9.7-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea83bcd9d6c03248ebd46e71ac313858e0afd5aa2fa81478c0e653242f3eb476 |
|
MD5 | 0e4d254385b33997acc63deb99c4817e |
|
BLAKE2b-256 | 9b11dcf8148b4ff8496cbcf27c50fc4316c5a873578fd6fd37faf5048ca4a24a |
Hashes for pycryptodome-3.9.7-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a94fca11fdc161460bd8659c15b6adef45c1b20da86402256eaf3addfaab324 |
|
MD5 | 8b773bdff5b73f4443bbdb648e7b5d8a |
|
BLAKE2b-256 | 89d4f8e539725f9f29590d6a8eb74043dc4df86ba0072d26846bfee1466933ed |
Hashes for pycryptodome-3.9.7-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f655addaaaa9974108d4808f4150652589cada96074c87115c52e575bfcd87d5 |
|
MD5 | 17ddd1586c58df6318bfd2006dc1de5e |
|
BLAKE2b-256 | 94615f6bb0d5feebf869ef7592bc213895a7703578440fdd554d0a16ca9e4b05 |
Hashes for pycryptodome-3.9.7-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4f94368ce2d65873a87ad867eb3bf63f4ba81eb97a9ee66d38c2b71ce5a7439 |
|
MD5 | 7cac2c0b0791428335d443d478412645 |
|
BLAKE2b-256 | 0aab7dff9206c50bfb3dd25bd66c0059f795275dc716f2805ebcadc64ac53607 |
Hashes for pycryptodome-3.9.7-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9378c309aec1f8cd8bad361ed0816a440151b97a2a3f6ffdaba1d1a1fb76873a |
|
MD5 | 4db916da8c6b05c09a7d3b0d59fe4550 |
|
BLAKE2b-256 | fcbd6a6aba367a27cfcd6a83af2a4db047d09003c417ee51f55367337404a7f4 |
Hashes for pycryptodome-3.9.7-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1e332587b3b195542e77681389c296e1837ca01240399d88803a075447d3557 |
|
MD5 | 13e9744c41b87e3700c29e58e9d40095 |
|
BLAKE2b-256 | cd63c41756097b42f3185dd307ddb7d1d10f0d1adac1833d3d118ad87c71aae0 |
Hashes for pycryptodome-3.9.7-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83295a3fb5cf50c48631eb5b440cb5e9832d8c14d81d1d45f4497b67a9987de8 |
|
MD5 | d033ddf3e60c0c1ba19947871557da8c |
|
BLAKE2b-256 | d2620a51324ca796344acb607edaaf1a0bae794d707dfc75919ac2f86abcbffe |
Hashes for pycryptodome-3.9.7-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9977086e0f93adb326379897437373871b80501e1d176fec63c7f46fb300c862 |
|
MD5 | e495aad61d665812d45f833f2d31847b |
|
BLAKE2b-256 | 15ecb86bd16ba5b34efee8768d22783d9abb1761ead090b1b3198ebe1a6619c0 |
Hashes for pycryptodome-3.9.7-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c739b7795ccf2ef1fdad8d44e539a39ad300ee6786e804ea7f0c6a786eb5343 |
|
MD5 | 69da01c1c48d1e4739349ee090957f55 |
|
BLAKE2b-256 | a0be580bfea61645d6ffeeb9fad3257c6611f41eef1f7b48d073e09a662d87ce |
Hashes for pycryptodome-3.9.7-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e10f352ccbbcb5bb2dc4ecaf106564e65702a717d72ab260f9ac4c19753cfc2 |
|
MD5 | 500b523126b5d5ceb139ab1e7d5585d9 |
|
BLAKE2b-256 | 4a18eb172762690e49b1ca317f143601a5abcc59a956acca84cc463a121d586d |