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.8.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22c067adf74aa5015c594ea876271b577b98cd5edd972a69f7996bb54d1e5fb1 |
|
MD5 | 4368e925b2fb5b01a37a763082972621 |
|
BLAKE2b-256 | 38a5eb6fbb91bff5c90fdfc494948b708fcd72dcf7eb1e27e6aa1961e9f976d8 |
Hashes for pycryptodome-3.8.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c10ce7d63b420b74be1181d69def5bfd0e5eb19de92ace4650097e5b895d7107 |
|
MD5 | 96c3adf8653ab7f1134fa49a341b7d0e |
|
BLAKE2b-256 | f3a8a725f0691ab547acd68303545cf8bd53b209f74e718806e9dd98b5ead818 |
Hashes for pycryptodome-3.8.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d55f34d7925573a6037b5f4211aebf5f832876113745063f335087ff083082d |
|
MD5 | e9b2ef675489e0df1696c649dbad47a1 |
|
BLAKE2b-256 | 62a806e9a96c07e334459eec9673af19f20e60aa7fdeaf31215c10c06a748206 |
Hashes for pycryptodome-3.8.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1644f820e31d144fc017c031a1c3967e5c82caa47b1c36499d45b7f7bad09d6 |
|
MD5 | 46480ebe2b646180dedd9fa5527886c6 |
|
BLAKE2b-256 | 286f65b48e1f0ff71aac6b1771c265f6744154d339f62307437e2dda01211bd8 |
Hashes for pycryptodome-3.8.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6e4bf9d42a108b6679939d7f81bc317a3faa2cbda450ccef99da15fe2160623 |
|
MD5 | e90b9ba510bed11909f5893d237602bd |
|
BLAKE2b-256 | e879e9c77fda5e0f096ccf315099678b28028f31ef4d6ca8219b1867339398f7 |
Hashes for pycryptodome-3.8.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1be38efb39dbaff52e3e46c2d7af2bd3e4b2bb650a9feea9cba4f80cb3cd0c7a |
|
MD5 | 4ed798ba1c39a22cdbac754587bad079 |
|
BLAKE2b-256 | 1f58af3cbf835da63a174f61687e2a8bd25bdea9cb25840009b45ac9c49bcc14 |
Hashes for pycryptodome-3.8.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e76067a1d72b7c9010c906e7086fa69320398c7638d563d9c929f83ac2e7d146 |
|
MD5 | c7ffc75f89405fbaa5f2d71b32853cad |
|
BLAKE2b-256 | e68b1dfc077e079fcc5fc17ff0cfa478f517b679ad9158cc7eac1d773adcd565 |
Hashes for pycryptodome-3.8.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b51742caff03fc78530bca3912a524cb13113cb68a9c2ba1e456f1f3005c059 |
|
MD5 | 59b14f21ae925814ec27c89d30bc8bed |
|
BLAKE2b-256 | 4eb47d007370568d98822c833e0d0e804417620865710dc8a5830bbed58328d1 |
Hashes for pycryptodome-3.8.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 853a65e8abdc8701de2b0d06d8c9f822a37208cf2ce537f9932280e504aa50de |
|
MD5 | 71777702568c64c83008c7e36f352acd |
|
BLAKE2b-256 | b7ce9b64debb3592948f06e56278c75f60d1a6cb5fc112c3436a42c5bf57691b |
Hashes for pycryptodome-3.8.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2202465cec166c4449ba1f128b89a24f88e306d1c3171b7d91ab8d3826a4d6e |
|
MD5 | a2afc5ce5b9728c7a3af1d5e3ead0583 |
|
BLAKE2b-256 | 21a65e82dd6a18706f281a6b889da358c4dc886ea7396c288834a1472a9e9cca |
Hashes for pycryptodome-3.8.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 349bf0f023254ed853178b42fd83be3d75b0d7751b5f0f90670bc6fef6449ecb |
|
MD5 | a7e741669435990409a43005077426f5 |
|
BLAKE2b-256 | fe81e6befb770a108bff991b178055648fa93598a771a47dac4e0da8f562bcca |
Hashes for pycryptodome-3.8.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 088ff55d55d39f694b60cbd317493d0000145c6bc99aa9e90a73cbd5a2bd42bc |
|
MD5 | 6327c3d8cd09a24e0dcd0cff9323ddb2 |
|
BLAKE2b-256 | 55a4f22f797200319dbba375d87c0b2520fe922fca68e5d25f4632d150603225 |
Hashes for pycryptodome-3.8.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 778aab70e4fff39cb220167e3977561feb73807c5a0cda85c01527674009764f |
|
MD5 | 8f6ee2e5188be4e36a25e472dbbe705d |
|
BLAKE2b-256 | 54bf48f42a6a69d6d2133e5feff990feac774360f9d60ba4e4cd0a1fa464b8e5 |
Hashes for pycryptodome-3.8.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cec840820c3295cc76bcdb2b13c26cb03532bd657a4331bae463672d6ad56c0d |
|
MD5 | 4d367864c48a43e602d3b8d82e73dbfa |
|
BLAKE2b-256 | 2f3005425af017cab988096a8dde56f4bc25f0c386461618d7827f355c4c7886 |
Hashes for pycryptodome-3.8.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23404c7de4dfc875fca64025e7fb73dfbbdf14ac17f6de85ea72beca15501f30 |
|
MD5 | 39e649b8368c2a400fbacd88269eb787 |
|
BLAKE2b-256 | a7f1a7e119202a159066cbf6d75c4aa98188929445d3f81d229bd504a2a3105e |
Hashes for pycryptodome-3.8.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a2e6ab1d76418fb316e8811b916cd39e72280314cedbcb66c0bee6ec5d448ae |
|
MD5 | 910c403e1c444a50f294d686585a7796 |
|
BLAKE2b-256 | 33cfa008746e51ab6b7b667223fb574a7c61575ea6969481b511e3b942535182 |
Hashes for pycryptodome-3.8.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3db05498d6435d88154a68a2b8440afcb9ea52e5478aa45d2906993a86c10427 |
|
MD5 | 1536d8b0b87d657b550ccd91dd12bd98 |
|
BLAKE2b-256 | 32ba0d67a843f46c1e1f8344e6ab448328039baa295c5f02974b45128e5da5eb |
Hashes for pycryptodome-3.8.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe0f3604bb525b9d715a58ca7137a423f0527f826da0d287aa9eb566956e0a0c |
|
MD5 | f3d3b9ca92f8c6d8ac33530fe1881d0f |
|
BLAKE2b-256 | 019ac6710c13a98255a276fda8306c80d52a2e0532da3c0bef8b8f5c781095a8 |
Hashes for pycryptodome-3.8.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67dedb3f0f84021f61955ca1f2229a1ee4ebfd0a7bfda2827094aec60e50391a |
|
MD5 | 9d1286c7107a86b6fb54c90364725e48 |
|
BLAKE2b-256 | c2b47db7bfaa517ff2db3ea1152ef379caf70101c438b5e8d99ed94d6522bc37 |
Hashes for pycryptodome-3.8.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15a02ffebc3c69461ca98db53853cb074cc5ec8d79d5ec7585e8158757a5f629 |
|
MD5 | e19c4bcc92c7d1f966c144e3d85902b7 |
|
BLAKE2b-256 | 5d972e702c45d5f9676d65f9741fabcc1cafbcbe41cea8fb299a4d7f1768dc82 |
Hashes for pycryptodome-3.8.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eef04eb8083f5469ea0a7d11220790ce7ba407597bbac160ec645c95e3552afa |
|
MD5 | f6a5b10befdb989937f16e837981cada |
|
BLAKE2b-256 | 65ef1da1cee1a1109fc9c87a1616b403af5425194145becc1cf0accc8bbb8460 |
Hashes for pycryptodome-3.8.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbd5f5dd55590c587a9198ba140ee3a662014f9f4903c0d8f0b1273e9ea3ae36 |
|
MD5 | f520e2651b67001d3432a2e821626d4f |
|
BLAKE2b-256 | 2b188eabc5de0d45704edcd1862acd642dc35f20dabe713e4d0b5115cc87ce70 |
Hashes for pycryptodome-3.8.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7473ed4b44f6615ecadb9b0af6aa7b74bffcce5d9e7d41c863622c7423a402a7 |
|
MD5 | 2a74dddffa1f32a88bc78d6f2684bd5e |
|
BLAKE2b-256 | da48f87bab834c080111ae9f5fe4b3c18248f00bc6d6a6cbd876e4d1c546aad5 |
Hashes for pycryptodome-3.8.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52cb45959d14a12cfe38c31ec32ec13a693bf15069ec24c3292cc6279829b409 |
|
MD5 | e53ae5e146d30954e900a08ee993874f |
|
BLAKE2b-256 | 93683bfb5a45729018466e8d403c213cef08d78a60cc78832f04df026ef07080 |
Hashes for pycryptodome-3.8.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6574f87186bdc787047f0b0e4c9ee32dbfc958ee6d376cf18042874a618739ec |
|
MD5 | c42388ca53bfee1a606034b68d7cba70 |
|
BLAKE2b-256 | f38ece3f70e9ad13fc2a71592881eea21fab0b8cc3d108ccae9ccdc9750ee0ec |
Hashes for pycryptodome-3.8.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bab4191f870e07e1882de442c9878c6947b7c2181b37a7dc7394d3c7d0c2302c |
|
MD5 | 2ac61c3a21d966cec3d889d476a96cf3 |
|
BLAKE2b-256 | b563955f144df4f0bcdfe816626be2b25f13a20fb7be99b245d32dfe24c98633 |
Hashes for pycryptodome-3.8.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c016c01c2f89a9833316d4b208b2b57c9c77ad1a3374156985ad1c0ea4429a7 |
|
MD5 | 8e0a0fd82bc0ee48aadc2e64cef669a2 |
|
BLAKE2b-256 | ea2064692bc00c20ffb37a9f154329b6b69d79e8c6ee43b4239e2be518cabffc |