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.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acd75781622231fd00aecbd60494aacae54e7afee67ad89e8e22a04a411c07e1 |
|
MD5 | 9db5dd6dc2bad3281df5ff3345301272 |
|
BLAKE2b-256 | cf5d8712c03b122bbd53ce9b5471f4333bb3d7b6aa8a62b7a64bfecfe264235b |
Hashes for pycryptodome-3.7.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51f37ccae9a88c64d000cfec58cfb59963463e8b92e43b126978abbee9f5af8c |
|
MD5 | 3ffdb1d6e879da7d5bedd48736b444ce |
|
BLAKE2b-256 | ab803161bb089ad3d00e80b1a28fae899ec8ec2c1697356c74808f3d9a1f1dbd |
Hashes for pycryptodome-3.7.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbbc5803c5c7a63e560672ff8f292e1ecc63477983fc9b705aaefdd0b12f29f4 |
|
MD5 | 4e6abc20f98d89135588ac2e960164b3 |
|
BLAKE2b-256 | 6e8789e3bc9ba9c3670ea3e8ed0ae1b97bc0452cca04f548624af8a90ac92ac2 |
Hashes for pycryptodome-3.7.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93390e353d6f557dc383c4c907d7b5009b92d6adcbdc2c1d89dcb7e2cb4cbb8e |
|
MD5 | 6b4763d035068f6f420e99a5b85026ad |
|
BLAKE2b-256 | db8e259756bf2e92bf186e2744f4aeadd194564526e71ff66ae3aeeab659bcf6 |
Hashes for pycryptodome-3.7.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f35b2aa23644a0b8b842b5237abee66dd225888dd4112613469ddcfe870da6dd |
|
MD5 | d0a56568582942698f3bb582fa0a1381 |
|
BLAKE2b-256 | f6f835a9e3241e4c7031e9f4efc813d6b5161bd52a5d3fb7dd27f990475849ba |
Hashes for pycryptodome-3.7.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36e89ed59cbaca1e74aedfa844859f5181809eb3983de0b66860980a8596dcd3 |
|
MD5 | f95a43387f556b51f946d883b17d4a91 |
|
BLAKE2b-256 | 07ee9a05a7dcafc7f1b3cf597f28e6615a465b8aabf58fc4db6f6f0614ab8a83 |
Hashes for pycryptodome-3.7.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 437c2fba3fd8a0c6f44edaa9cd800abe8b3ffb4fd3141eb7536b333aee40e2fc |
|
MD5 | 6b5cf47f217d1e0a240904ee0dbb2ae9 |
|
BLAKE2b-256 | fbe0555b068ace6c33cfdc417c97db5656f416bae9a5840ac9611014f36fb608 |
Hashes for pycryptodome-3.7.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fead738aab86a427826dd63e5f95dac59c7a94bf3e68329461b903450248736 |
|
MD5 | a6694405bcdf6d0d3c9621c7d2e6a573 |
|
BLAKE2b-256 | 37803dd4b409cde21b4240e2bb433d88e912e6488856136fa8914bb6b43c2d51 |
Hashes for pycryptodome-3.7.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb9b668dd9dddaa8f1bcd8052a80dea38c0c55a917c3dbe10f34b9882e6310f1 |
|
MD5 | 310318b5b87ce82e682e400f8c1c44f7 |
|
BLAKE2b-256 | 33d9e6eb41b77468a9309cbd515e50abae00ce5f59d50fa93903b02eac7aad8a |
Hashes for pycryptodome-3.7.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86c82278471431deba734f439555ef260f7d84072568268eea654c2beb7568dd |
|
MD5 | e30fba159cc339422ea44bfdef340d62 |
|
BLAKE2b-256 | 8a0da6ac7a459c3272170710d07ec1feca4c7401d55c6eab0591c2ab8d40f843 |
Hashes for pycryptodome-3.7.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 881f88bf088985dce9cd9eff9c926deba2ff1fe0ae206d58acfb7059c00fb913 |
|
MD5 | 0ea303acf9fe62823af7a91d0780d3de |
|
BLAKE2b-256 | 6a270e8274303285a2bbb5e5004cc4fbc8af58cf8807f35a3f9dbe22f2c58ee5 |
Hashes for pycryptodome-3.7.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51c2fd97ab0f8b37a528817ae28713e6afa367b179c86293ca0162d849d77eb0 |
|
MD5 | 5f1cba51e437a185ecea182d18aec822 |
|
BLAKE2b-256 | 9943114e89eb8f69c395e5592ede6f6f54fc8fb1d3f60c6a8e1dd4935fd41361 |
Hashes for pycryptodome-3.7.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c71bdfae281a741d369a6203d63eba99cf9ee96cf64cd02b40b44db8b8253bd |
|
MD5 | 4d54a60ffea197dbe3aeb8df6a7eae36 |
|
BLAKE2b-256 | 5c12d6986d0de8bf9d19c2249beb9d2d0b4d6e07a5a2535f04eaefab7324246a |
Hashes for pycryptodome-3.7.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 820dd2404241ef14134f28a1f8f47ea7e323c32763890f463412fe76175d1897 |
|
MD5 | 3c093088d753caa715e524d20b71c91b |
|
BLAKE2b-256 | f122ac94605fb2478f4dd35808f345469c8300254fe97939efc1c00727fc2bda |
Hashes for pycryptodome-3.7.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04eda25b5260562dc67557758bcded8693e68d2960063de5645565e633d8aa80 |
|
MD5 | a5f297b9fd6abae37a673960efebcfed |
|
BLAKE2b-256 | 4432f8162a3a19c30d4e75787bc7a122f3b64e943f9bb671c2a46159ebad5ec1 |
Hashes for pycryptodome-3.7.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6a574d71988ed01c36150ca7a54904eb93be8c3fa0aac6c646fc01bdeaee9ca |
|
MD5 | 61d2afb279b4eb093570a6261db23b55 |
|
BLAKE2b-256 | b7f7ebf450b13be6bc0babd93d8438b80f15658587f572c63f767165a2d19120 |
Hashes for pycryptodome-3.7.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c47eecea0837f197ff75ed47c7895768de00212e8c20d3da5628c3d0fc3b218 |
|
MD5 | 0b345f4a6eec27479ee033c9c1a4fba2 |
|
BLAKE2b-256 | 7b9edd72df7d334acbaee9dfce062340a4804f81bc2aa47ec94acee7d4048049 |
Hashes for pycryptodome-3.7.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54789e4f2c60f5c37f9e43b688d51965fab65ce3e9e352ff8ee03543ec7eef58 |
|
MD5 | 6fa3facb15b8846d7c8cf66fd899f2c4 |
|
BLAKE2b-256 | e64eaed97727450b5c8afe4d39b9708fe9b023fa332040583fe436c2391b5d39 |
Hashes for pycryptodome-3.7.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b68975f6f88cba021b4286f2c2f8ae863a3b831490964f2a4771193fad1f6fcf |
|
MD5 | 4fa458a3fa1d0d806b50b7a2ef6f6bf2 |
|
BLAKE2b-256 | d6017924cc7c7ab345779bafccae47370c9cdac2e0dcf157908b1d6872dda2ad |
Hashes for pycryptodome-3.7.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da6527b8b3ec022fb9d142652126fdeb9ce8521ef6cadbb1e762d1ef75be6f35 |
|
MD5 | 196c8d4221721d7e690a1e2262ef1291 |
|
BLAKE2b-256 | f5b7ff8a251a45a694304fdbdea7210b597058d2848cd34516aeb78190807d37 |
Hashes for pycryptodome-3.7.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e6b94f2ee0aa6613157fc22c6fb71f7f11c6c895df35d9e7f8977d0d29da57c |
|
MD5 | 1d35cdcfd25256255a96f5fc8d0e7fbf |
|
BLAKE2b-256 | 75f36e23f024d746b323cc5df463f5767fd46cd604173582d8215582ce285580 |
Hashes for pycryptodome-3.7.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e4554a2248773477ff61bae461ab301cbf1e1c21efeda0368ac410a0ff2fb68 |
|
MD5 | dc624353d021237ea69b3f08573bfa70 |
|
BLAKE2b-256 | 0a864ebc8ec915cf2263d8bee606c6455090d8f353489a83723491a9dc1817a4 |
Hashes for pycryptodome-3.7.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dca327ec8750b5cb08bc2c3eecf629f46e4ec18a8ba318d0c6faf16ae53da0a6 |
|
MD5 | 93dc3c747cf0240fe4e19d7127fe3d1d |
|
BLAKE2b-256 | 146f5abf7e3e87aa71bf120a4ff94581f97392a5b583c8a763ba34ad5bb3ff22 |
Hashes for pycryptodome-3.7.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2dfb750bd34fc272435b784d7b1dd74dd5e46942fe41b58513edb4c635589e |
|
MD5 | d1b7ca16500c1e2dbc493b3499819e7e |
|
BLAKE2b-256 | 75a526d76787d31ff337b577ef3100becdfbc14cd4b24be9287f3ff0d9a05f1e |
Hashes for pycryptodome-3.7.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fe36931e7c5cb5483e97e5f68f34bc4f4be6e976d1fbb2ff502f763874e7919 |
|
MD5 | 101e985ff52091fe6c100a54e9ce0b5c |
|
BLAKE2b-256 | 4efbbc020b8459921239750648fde087bb78880e82b989c737c71acbdd05fb1e |
Hashes for pycryptodome-3.7.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70b8757a7df5a993c778bebf29583b7cb77fa80975ab383381d1fb89717f4e46 |
|
MD5 | 1a25c6f69cd8b1608728b487db2d16e0 |
|
BLAKE2b-256 | 3cd84d710723c76f80335653ad614b1e4eaf883a54db66dbeb03f1a3b143f3a7 |
Hashes for pycryptodome-3.7.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e37d42dad62fd75db3eb2af6236a234a177e0aca2b73fafa5d54aa1ebd74e936 |
|
MD5 | 81c33145637c941f834137579b31f12d |
|
BLAKE2b-256 | fac6f0a51a1470138d43bcfcd810253d34f20358ad8598caa5e842e6fd632d20 |