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.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa0007702ff5948f69e681cbd463bcd8d240bdc9dff05aadecddf79f5d9db967 |
|
MD5 | 95055d6495b91fd9d833bcd9e88f7750 |
|
BLAKE2b-256 | c6dd46ed4d99b572a66341e6dd005936a087147e9960e74f35001dba23e19031 |
Hashes for pycryptodome-3.9.2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95eb066f87cbd5784897d629d14fac31cd6acc71c819449636916f261600f0b2 |
|
MD5 | fefa9f4648af25de2cc50fab07e0aaf5 |
|
BLAKE2b-256 | 4778f27c5d9ad72ebd06388f1f0f1b68835e20da0da668748c03b2a035548f4f |
Hashes for pycryptodome-3.9.2-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93c3da79aa37fa453d895625f07ed85479fd2bb1f3c9d72d383d4ba0560d9394 |
|
MD5 | a93fe9c832cd888c530d5cfe8c5ab435 |
|
BLAKE2b-256 | 83af71c2632202f97ee74da3214f0efd7630a6ded5db80e3bf69fc46bb49ab8f |
Hashes for pycryptodome-3.9.2-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d98fbbdeb1fc97af10c49cb8a96ed18ae690e9cfd10034c9ae27f302eb7192d |
|
MD5 | 595114013b88753cf12d642dcd8dbb9c |
|
BLAKE2b-256 | 1bcac46a40eff70562943e83afdcd36b192672f81a7b812242f17093bd69210f |
Hashes for pycryptodome-3.9.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31bbfa77fdd03d112f95f6373dd0b039337a332f80392326efb1db1f1acd7e36 |
|
MD5 | 7e002d5b092bf69c9d2c20bc18d9f4a8 |
|
BLAKE2b-256 | c39bafd66feb0c1e8af93a340982b17b02b25f9b449f02709bb80acce1e717d3 |
Hashes for pycryptodome-3.9.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c16418b4dda6e0355f69b901d9bd076883fd6df56cbd53a17a3a3267ae8e89fb |
|
MD5 | a4df13722df10c5d21522a2912998e81 |
|
BLAKE2b-256 | 25169b331203cdabc4de111a8485171825a9fe6c01b3f8c5ee469e9cca941cee |
Hashes for pycryptodome-3.9.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d88e457ae5b82496a330437abb58a6954bc03c8761525ab24cbed75b04fb2bb |
|
MD5 | 061da44e24baae45751d18680fad2084 |
|
BLAKE2b-256 | 2158dd1174415ca4ad703caab616aab910070ae24a3762eebcb2fdfdc51f5541 |
Hashes for pycryptodome-3.9.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9beceb38e254afd06972d881f348e4cbb8bf77232f6ef50b06565ca274d4838 |
|
MD5 | b228b50d7e5645009be827b0e10cbb0b |
|
BLAKE2b-256 | b0b982746f4c29c263359a6dc27efbf78720c02fedc0ac6d7bb7b3aa8c403d98 |
Hashes for pycryptodome-3.9.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bd810c15bc94cbf16401aeffa20b3ba72c76bfa663b039c7ec46d29485300f2 |
|
MD5 | 428be1bb1eb91f99d98dc1b59ef104ac |
|
BLAKE2b-256 | f2b6360650b4985e7451dde19b0db95a9fa1a1bae19dfbad9ef2e3643480bc4c |
Hashes for pycryptodome-3.9.2-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd125d5913d29df5fcf06f939a3b77e36cadf5c7658e60d6de78b5e430a0f13d |
|
MD5 | 822c1f815bf257bad49d9b3c1dad23f4 |
|
BLAKE2b-256 | b14b373a80aa4e548e43aa021db666177a8fc3b928de47b97a656be08ca2044b |
Hashes for pycryptodome-3.9.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 365e75d4c4d26426a9a27b0122dc0148e0e55ad00c086c063056191d54122030 |
|
MD5 | 75f98b85ee55bf443f1b2e333b78d09e |
|
BLAKE2b-256 | 4cb19dcce294ad90116eb1c0cd51aed570121fe98eb80a875b0ed9e36ec7eeca |
Hashes for pycryptodome-3.9.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4b81fb9459916f7ac6118fcb4f6dbdbb016be576a75a092a6128001dbfe37e0 |
|
MD5 | 2861402d589b025aabe92abf93eaefea |
|
BLAKE2b-256 | 45a6208853545f71aee4c1dc303d95c7c1a4b28dc1eec8df3f9e82348ded9ffc |
Hashes for pycryptodome-3.9.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2406bcc8aab13e34d7ae32f582beb2a75c7679d08763ec6c1d2c31b3ff5407bd |
|
MD5 | 9cda9a1f452d7f379f63b12f06283ade |
|
BLAKE2b-256 | 6460634aa7020746e3a0793d00c6b635ae6fd19662bcb3e1e629cbe00dbbcb51 |
Hashes for pycryptodome-3.9.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3788b542eea258156d23c8f7a97884deef05953fcaf17dc85ffb64c09c251e97 |
|
MD5 | b8deecf49553fdb3efcfc316e456f183 |
|
BLAKE2b-256 | e5e7ddf70f75e8e6ad04548d416965ae9c500554c61e17177a18c6068b5a20cd |
Hashes for pycryptodome-3.9.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f44fe9f5e861ca8f8ce2b4367fe6e0ddb45929a1b3bb9159e4426bde3e4574ee |
|
MD5 | 199256eddf37a5cb76bf34597302e312 |
|
BLAKE2b-256 | d5c480bd56bfd898172f5fd8ad8e32c6f4ad15a34b9d6e2e1e61d2de4868af97 |
Hashes for pycryptodome-3.9.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfdca4a6ed5cf7bee61ae2a2796793c922946e565b49b27c71d3ed02aa02afed |
|
MD5 | 468591e889f15811d8c35c3870adcc72 |
|
BLAKE2b-256 | 88be11250e981f168e628be36cfece3768a24109218ee7c9fdd4f1f9a3ead430 |
Hashes for pycryptodome-3.9.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f1746ea9f04311c9a2a0f41d4455b30ae97e81becf978ab3920b83ef83fab0e |
|
MD5 | 20ef06247939b5fa3839711c62e9b1d0 |
|
BLAKE2b-256 | f734d0cdae53e557f8d45c7f8a856996892ea89f6aa62c9643a20f9282085c7b |
Hashes for pycryptodome-3.9.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8994193a30071a80f659d7f2ad8f7917b06f61a226cd4ea18288d2d52f8d498d |
|
MD5 | 8402b77bf1d0d6babb34cee50ef74724 |
|
BLAKE2b-256 | f15b137729a601ad1546aff9928f0aa7cfc0f2aad1652a06fdd3abed75b8bc92 |
Hashes for pycryptodome-3.9.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a45d4568de65aa46d03fa05d1a97430ddde435888f40b2acffe953a2d74d5d8 |
|
MD5 | 5deaeaf5a9763710db68d1e68a697f4e |
|
BLAKE2b-256 | 9babd9e1f38c474df90f6ff55023739d71e2f6211487fedf1a8210f1a68a73e0 |
Hashes for pycryptodome-3.9.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b85dfa03d9be3a3a4e90dd0a7b89b0f6c23a89cf19a8f9ccdb9065d750ae21a0 |
|
MD5 | 9f5c78e8eb1b7de45530c72a628c5aa9 |
|
BLAKE2b-256 | 2204642a6235c7fe010fb030242dee0263e446f9856087d8fe7070396aad8730 |
Hashes for pycryptodome-3.9.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 469407dbbf1cff03e4c61655a6bfd7ca88e84501a44fce27c577cca53f44cb9a |
|
MD5 | 4aefd4d6b02817a489b92a613c5b0d07 |
|
BLAKE2b-256 | d6b893c33d4dd1e71c6873a14688fe5f5d9b56cbf729e1b98ea1682ef4ea963a |
Hashes for pycryptodome-3.9.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc2e92ef495b4186ed2438e2ff74b07aa5e8732038aa050609164962ccd127f9 |
|
MD5 | ee91a4754f51c1e44c923ee864cf0458 |
|
BLAKE2b-256 | 3614eb11e7c9dc6f87cafe476e3387a7e7dd39be2131796196d6392ff204c239 |
Hashes for pycryptodome-3.9.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 547ebd216aea851a4107c762c96af8c8c7d7524c2329729e3cf09428b5751982 |
|
MD5 | d4e5d77d9d9c959e70ad98e7fb265a79 |
|
BLAKE2b-256 | a0bdbfd56a22c6242eb2d933a5537a95698965ddcdb5eec0a817b325dd386388 |
Hashes for pycryptodome-3.9.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 262b9d8763eb941339d7160306f24e35eb83783d0dd199dfe3205712470a3edd |
|
MD5 | d2666720d5a32537e2802b2780ce1dea |
|
BLAKE2b-256 | 0dcbc9238c4a8e95f93dcdbd33af234cac8b64f6bd4dadc1053e1c2a53d32c3a |
Hashes for pycryptodome-3.9.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af59cc0a022e347bf3569a8f75fc17d9aa962e9c9cf3517e358198120ea930d0 |
|
MD5 | d6f59a15365e64b15b697d928b573287 |
|
BLAKE2b-256 | e6331b369dff82786efac606b961e4c3e54dbcff1a9d1ff06771710e23683f1c |
Hashes for pycryptodome-3.9.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b102f413118612f574f010b10ffb3dcc9ee27bd4e96dc9868ecd009b62c3ca1 |
|
MD5 | adf9871f8b6b8d57083845e6c0a9201b |
|
BLAKE2b-256 | 06541f322bcce81947b540b69eb55247ab00cc23d3890fbaab7cc3a39bc799bb |
Hashes for pycryptodome-3.9.2-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 301a23878b0c94ffa3804f3c676889f2cc44d9170d53f544c1c215e54aff6031 |
|
MD5 | f2df3431e61f56a71bdc4373730a130e |
|
BLAKE2b-256 | 45348915cff1bec56a83d815b628af1579db8f67dd6287521a57d3c406839916 |
Hashes for pycryptodome-3.9.2-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71bb0da347c0b3bf6c99394d130c6d8f1a1242be86805ae4e913759af634cf63 |
|
MD5 | ab495de90b854aa3a36792ba8ad46d75 |
|
BLAKE2b-256 | fb35b9d491078916b646c95e0bf6f1b90910309733db8eaded0d3ef7f30926e1 |
Hashes for pycryptodome-3.9.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a70902fe1805e8b4ed94b56f352ac140443094f153d5d023170057d8a35ee161 |
|
MD5 | 285a6d10098449d49a79845a06c7827a |
|
BLAKE2b-256 | 77bac9a710ffb636455e0040b4cd3d4ab64e70591ac9f6cb6e79cfe2e395392a |
Hashes for pycryptodome-3.9.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8987f10609e2e2b3c1bd13574fbb93e880c234705bc78aed21ff7ab23df7a8a6 |
|
MD5 | f3ee61b8075683a1ee9239b446eb2b26 |
|
BLAKE2b-256 | c891c2fa1356026552a7a7afa557e31e8515e9f1db6b56f0995f446f305f4175 |
Hashes for pycryptodome-3.9.2-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68906f3ce51c1add77326882b4ff51f5f31b10ff9a67fe518e2b5270830e3003 |
|
MD5 | 188b5ea972780c751d994b137370df1f |
|
BLAKE2b-256 | dbcd78613acb432d23b9c093897605d6baa1f4dcb4495a1ee49238abcb2247c7 |