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.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5946f623ba31e1068b2e3553484030e35d15ad7274f44a3d7c8b1322fd0c8a2f |
|
MD5 | bcd519019b6a6c2b7043d91ed23b8105 |
|
BLAKE2b-256 | 1bed452d310d36640a607b493a5e376100233fab33030731b0411cf2523691b3 |
Hashes for pycryptodome-3.9.3-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16aeb9bf4595641de39d866c552cbe66a373be59a13f1ac8a6b7e29a3978546e |
|
MD5 | 0693929708164043f6a5e4fd4e82cf66 |
|
BLAKE2b-256 | e0efa955e35ab7bdf8f8c9170011821fdc5fd752633aa40a81a5e8dc6aa6c601 |
Hashes for pycryptodome-3.9.3-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b4943134332d81393475c8abed899dce37aa7d8481488d661c2fc7f78f74f84 |
|
MD5 | 86aac687e954b46e7f7300b245294ccb |
|
BLAKE2b-256 | 5460b0dbce203a0dca1ad865f063f5e79e0ff8021da4f2ae9478d37828175bc6 |
Hashes for pycryptodome-3.9.3-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd032c319c6b376e6e1c4908df0310c64873a2d72fa2f231bbbe07d1eb01cf8f |
|
MD5 | f506d8fa62c775e5cba4284f85271089 |
|
BLAKE2b-256 | cddea33cd9db54e28f34938ffd822682ad68d3a6a9dfa961fe244abb214234dc |
Hashes for pycryptodome-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6410b9d00d90817c35b45562db247e15b631faf75e065a4317b3a5023b22c0ac |
|
MD5 | 33fa9062955102588d72457e8bb11b18 |
|
BLAKE2b-256 | 4004414185bca2e5440a65512f5635a0a79e11d23e3d80396820f65783b1f14d |
Hashes for pycryptodome-3.9.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bbd757952afc55c3534be46ebab4b5420b16d0dddae8b67e3dca5fd51f057b1 |
|
MD5 | 3b9319979c6f42c4203bb396102b5074 |
|
BLAKE2b-256 | 9b41d2902a648253351c6ea02a90a6e5fb1b6b7910e8ff1675160bf0aae28b9a |
Hashes for pycryptodome-3.9.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c91998100dc159a22ac490b80d9cbf05522d39880b7b8a1b86bea840d2c8ef7b |
|
MD5 | 1eed657a3ebd77913d130e853179113f |
|
BLAKE2b-256 | b66f1b900e4c05443d1310f439d0ed8b598fe2632d971cf87f9fca44b2982026 |
Hashes for pycryptodome-3.9.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60135ec64e31fbe8568eead536e9f34d5b54411dd454666594dd9d696a45fd3f |
|
MD5 | c26df35543be03b505e52d2e25e3259b |
|
BLAKE2b-256 | 547f10343e652d99cdcf47814dd1f2f9ad605fee39bccbd8bb915a9636dccb1e |
Hashes for pycryptodome-3.9.3-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 193d3db3be53f3d5c11943a69b5d36af73ed60fdd68f840a74d20d18d218823d |
|
MD5 | f5c332e50a80952f21de3ed5321396d8 |
|
BLAKE2b-256 | dc4ee860e5c0588bfaee2135d2c9460d0194fcbe98ec7a289d5589b41b4e50d5 |
Hashes for pycryptodome-3.9.3-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 593b126ac6c8cd8ca18f3d0f2b373312949c1f6d078c216907cfc2eddf5add75 |
|
MD5 | abf6932034d731a05de8f7a4c6aa2956 |
|
BLAKE2b-256 | 06c50c64b828c57a93cbb24a5cf19e158f2fee0780ae2b8e3ee235b11e941220 |
Hashes for pycryptodome-3.9.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60802b15c7447a98dc12ae4480f01b909adce35d0de1fd05106139660a5c7eaa |
|
MD5 | 6a5de9bcb4b9523f1ff4367e06ad96b6 |
|
BLAKE2b-256 | 31ee7304537f5127794f5f6d4c58c407dca9ec1bdd6ac6786cd2b2ed183c0162 |
Hashes for pycryptodome-3.9.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dc39d2d4382730ef409e8e3dfcbcf979a8e318f2957d13314a5b421ab00e3e7 |
|
MD5 | dfc70de4213f6bf0123e3636d9dc33a4 |
|
BLAKE2b-256 | 306e5f85887fcca8366c2495e178802676dd2583103c6d052f079adf6e7909ce |
Hashes for pycryptodome-3.9.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 508ccd66d111cf464c7893153b71ce59fa0a3b0e8c41561145b44e5f8d7b8f97 |
|
MD5 | a68c3e85dc2537c258759b75fcc15753 |
|
BLAKE2b-256 | b00ae93acfba924e4794387c4188898862074e12cd05868694f1376da13c7dde |
Hashes for pycryptodome-3.9.3-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e1f13843f4a6abd7c60067d3de7296f4519799cde31a9dfdc99ce11d086d65d |
|
MD5 | 1535304a19ccf08fa9cd1e01c738dc0c |
|
BLAKE2b-256 | c31bbeedbb72446f404bf00c69ffc83204d8bfe479fe97193286122cf9bc85e3 |
Hashes for pycryptodome-3.9.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3f462372dbbbc100bdae2fcc3ba60dd4fab82ac78f0650ec5f67f3320369379 |
|
MD5 | 68256e5483c6cbfe2dd17bfa9f579746 |
|
BLAKE2b-256 | b4b11c9fff23d516d080981f24f7b282fa390c97bea9bdc665f1fb8fd263d0c3 |
Hashes for pycryptodome-3.9.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4f2063d4cbf1eca10fcd192267fde0289d95f6ebe4dcde2cb778fbf2738f5c7 |
|
MD5 | 8ac8698a6561ced650e5e46b86e4d1db |
|
BLAKE2b-256 | 796bba6b1cb99dfb6171fbcd8e47c5c3f8620ac4d27d6f656b317707f50f6a87 |
Hashes for pycryptodome-3.9.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a387da47c12afa36138c1fb989ed866b5f51b99f6361c3a2c98b6aae40ae401 |
|
MD5 | ec001503c1b15705fd2c6ccf2aa85267 |
|
BLAKE2b-256 | d7e4f7aa752e993cc88778d272e1c05e1ac5ff065ee30413bd94288e9d482972 |
Hashes for pycryptodome-3.9.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cb924182b302a64f1ebfbfd5fe2083f4f339877b3b460b9311da3eb9a5d2b9c |
|
MD5 | 152d089e7993db185e838b523a26799f |
|
BLAKE2b-256 | 1a807e2bc575d2b24283d833bff0a296714f5352c742c9679a629d5ec8ff60bc |
Hashes for pycryptodome-3.9.3-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7209fb6258c78ab7463ae0fc734f9c1dcb6f5a20382137a8552e05dd62d9ade |
|
MD5 | d5c986cda2882fdf0fb2d296c2011ba0 |
|
BLAKE2b-256 | 8df1db98961c8b9b01062c920487697fa2a006029b3a670dc399340c0d3452ea |
Hashes for pycryptodome-3.9.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cc1539bb8ba50be6342d4009496a6a80534ba670cf6af588bb4795701ba9b0a |
|
MD5 | 810c3e68646a44cccf19974f6968759d |
|
BLAKE2b-256 | 3482c9a6e9fc628734d88a3d0c706fa0882464596bcc9af7f7b94c72aee27928 |
Hashes for pycryptodome-3.9.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aabe980aa79da7950277b5883aae3a2d10f13c28d102359ad641d0b69e0ff600 |
|
MD5 | 135e0fa45be28f39e539173a1ed36080 |
|
BLAKE2b-256 | 2fe4a034abd244a7f75a9b9365a070e8460a01156cfd5e010191ff3e613c882e |
Hashes for pycryptodome-3.9.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0a7c775321a70623eda618750acb5ffb2274b0c0d4560cce82dd44706b54095 |
|
MD5 | e579a43e830adb071b3e37c55cd0fd02 |
|
BLAKE2b-256 | d23d5eb229a7bd820e2cd99e72dfc3c780d8d00a5f069a80ffae3af174edeede |
Hashes for pycryptodome-3.9.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f795e23b6da938555e500ebd8bd41af5721008ebc4b460bc0644b3c26e950530 |
|
MD5 | 1cc5da5bfc5d251b97f26beb273a9bd5 |
|
BLAKE2b-256 | f1cd417bab7f663d7600a24906818395d762639db4be25fc1e038a09f10891ed |
Hashes for pycryptodome-3.9.3-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fef4eded5d94bf3806e55c800d392ccaed95bcd3f4895e033b82f2aa4a56ff5 |
|
MD5 | cbc8574affe96c7e6e7ad87584a0d132 |
|
BLAKE2b-256 | 3e34f5626f6d197212a9ec378bb621b109b24520ca5a1e2c593119839d22cc2f |
Hashes for pycryptodome-3.9.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea084074b1eebe56e177abb06f538bdbbeea9c7b69e709a2a166d001ad64828a |
|
MD5 | be3203f53f1252bd26c9424a9d3754d9 |
|
BLAKE2b-256 | b1f1a09ed6785e03f58949189065b6f2ab7a5fcb82a6e47d3fbb7d5d1ed2ccfe |
Hashes for pycryptodome-3.9.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3e9fa93f94634f6c36a1949dffbb159bb0251b022eedaaefd19a1ebcfdc9ad0 |
|
MD5 | 565c1adbd61accbc0f566f14fe8e378e |
|
BLAKE2b-256 | 633aea395268cf36825823832bb7b44c5cda036e8891758c967517cd0f8e0ab1 |
Hashes for pycryptodome-3.9.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b67370806d9e4e652a3f495cc5085f2e98abaf424a4673718f9ea4433432eeab |
|
MD5 | 1b6759e7ce0d1b0c65adac6a3bce8b65 |
|
BLAKE2b-256 | 48dcf4d5ba7be18e689c67919edce7962fcc0d84bd4749479894aa1d669ca245 |
Hashes for pycryptodome-3.9.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9e5fd8a61522eb71937a1135fd1e6390c0a228be2d810675ff0c0158a1f0e2e |
|
MD5 | d98aae4d9468aac5373ebafeda553d0f |
|
BLAKE2b-256 | 56027af68678da16fb87f6327ee0728670f2400c38ac663d18245f43090327cd |
Hashes for pycryptodome-3.9.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a93bad846a68d5c5f44eee0057a50f06baf46af56b5fda8942b6a1114bea8755 |
|
MD5 | ec99004a450eaf4b77f9c637e1330604 |
|
BLAKE2b-256 | a9122739fa7c18d5200e55cbf4710285557d9f02da3c07f5247fe4c64124c018 |
Hashes for pycryptodome-3.9.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7395f918fc69e3f8ab5fa3fbced0252a3cc12a49235f0afb539d9dbad31ecf71 |
|
MD5 | 871aeb6d05af0129b99afb7773634a2e |
|
BLAKE2b-256 | b58093f963d44508022a43fcb8305b5cd8d5fe30ece3256a846651b8a51c6953 |
Hashes for pycryptodome-3.9.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be2bbff96e01b3183638105cae67226f87bff84efb58d126e168b61e82f6c99b |
|
MD5 | 018b0e847d4f5eede1a98e15198227a7 |
|
BLAKE2b-256 | b5791fb114f773fb8fb1003571735f7613cb8f49254dafd426e7d4f77dc68766 |