Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.4 or newer, all Python 3 versions 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.5.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b0926d5f696252fc56c2e9ed1cabe4b3a975b033b3818db60283ca02fabdad8 |
|
MD5 | f197ac9b873c1f3eddbec9557baf74ab |
|
BLAKE2b-256 | e42947d1d02d7597f5f9ad8274d6c117b45f6388da367f5a56843ee213333813 |
Hashes for pycryptodome-3.5.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4ccf648e2f5578c1f0e94908ed7ef35ac93d1c981a6c18da920ce4c2ce384e8 |
|
MD5 | f1ff62e793c1a9df3da45729cfc8f574 |
|
BLAKE2b-256 | 94f3b0a7b24783e9922aea8c7088d595e91d4cc60d2eb51a3707643610462edc |
Hashes for pycryptodome-3.5.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2a242124759318e73570f5e9fdf0b5de1fefda9cc235b9df668facb47a0b21e |
|
MD5 | 11caa6f955da7489aab02155d91a2550 |
|
BLAKE2b-256 | cc6dad69244da9ba6ed471d9f9015b0249041e3cbb2f49ed7b3599e06b51b756 |
Hashes for pycryptodome-3.5.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dcb04314e7e1cd50a2d92e0332436e335111a4b8456eb74fd54bdd3881f5f28 |
|
MD5 | 49e1ee2560a0a9c1f617303d26183a87 |
|
BLAKE2b-256 | 4d10574b0ad410ae8d3b62f7709b7342f90e1cf2b8bd1161c41b0f40d19dc3ac |
Hashes for pycryptodome-3.5.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa46846db3a3428ddbbc21abb04303654016d1292bc64cafb63d504c27164465 |
|
MD5 | 2ed0ada3c47bace097914fbcc9f1fe8a |
|
BLAKE2b-256 | 35e1e2c4fc96709eb58e98e43d5cc106efd2069e9beb8a058e3e28f23c1f3315 |
Hashes for pycryptodome-3.5.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a42ede81763eb23e962e81a243432563d6fd8ca4f006a8970f3ee1b8393e31eb |
|
MD5 | a0de89645fba2553b02d63ba3906b5f2 |
|
BLAKE2b-256 | adc85e5596d1839b3491ba7a63ef7a0c6688305108632c53abd12f660675cbb3 |
Hashes for pycryptodome-3.5.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc4b5788a7af2b8502106b2e5307b05eeb55bb21fd601331ae53a0289e56fdcd |
|
MD5 | 8ddc71835f693dae771a5427f81955df |
|
BLAKE2b-256 | eaabd00d7e3c877b06d8fcc67433dc57a469d2e6f5b9b0100137f0ec4029f32d |
Hashes for pycryptodome-3.5.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80299e82d0eebe1575b3c78fa004b9109d4f8888f6e78b7c1d652fdae9389185 |
|
MD5 | b2be6805fcd831fe94891969414938f6 |
|
BLAKE2b-256 | 274c3fce4f6d03176ee378ac5e5806dbf7c6794939887569ba44a444a1731007 |
Hashes for pycryptodome-3.5.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a975e8f379bb2258e187d87267d0edbebe70f1de72da8d901525b262442890c |
|
MD5 | a63ecb4ea725749971e4b8ac403dbdda |
|
BLAKE2b-256 | fa94320bf93c429226443f7ab269a045cd0f23eb66a8824cc88d89fa23e299d3 |
Hashes for pycryptodome-3.5.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10b0b5247d7c978b9107722272ffc6e097a327d45a4cfa9577528eeff91cec27 |
|
MD5 | 6dfe39d4311809d5fba54b9a259f6b71 |
|
BLAKE2b-256 | 41f45d5a059576d0a147f9de0f48472a8a7d84bfb2379fcdbff6fbcd820ccfc9 |
Hashes for pycryptodome-3.5.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ec3f2e84950d796a20869ed013bbb6c4301e65df0f1dd222774a7a35cdca17a |
|
MD5 | bce4f74ca2035e7fd9daca02af87bc78 |
|
BLAKE2b-256 | 7eb2ecd54e0654cf10186358dc689f6c94a02da53291401de9da9db3aae061d3 |
Hashes for pycryptodome-3.5.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 014d270b170ae4130b0e3605e9ef1a218d3689f600f7b36fa56af317c5ddfcb4 |
|
MD5 | 0acdf13754fe41212f3fbaa2f674e2a6 |
|
BLAKE2b-256 | 734ccb5f5f0a6781d08a943b49ec08fb2044751a4dfbc236d00798c1ec132c4a |
Hashes for pycryptodome-3.5.0-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c3fe2550232204c4b13988e777872c24e95cb91e0b53dc07b96cb5f911c1ad3 |
|
MD5 | f38154cf7b90b738e98cdc41a68a51e4 |
|
BLAKE2b-256 | 7887224c197f2f6b4fc7490e083c3ca6af4beba3c4cb403a05bed20e3484515b |
Hashes for pycryptodome-3.5.0-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e0743b0aa7562242d597f8473314bd5bd7d95b32c671dd290f66f7e5c6866b5 |
|
MD5 | 7ad3e74ea6437bfe32367f5dd3f05a6b |
|
BLAKE2b-256 | e7563cf5f82b08221b91805e5984d4ff3a3676cced047d7b281ea89966ccfc13 |
Hashes for pycryptodome-3.5.0-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a13f89b7e1cbcfd8d9a09b33098cc55c090b4f03820d2e96df63c5ffda2ecb55 |
|
MD5 | eee524369a488b022f25f27e35475087 |
|
BLAKE2b-256 | dedb2e350eb4beb6a66dafc7e8f3ad3039565a6ca7c8c6f653b0e5bf83a8aa8e |
Hashes for pycryptodome-3.5.0-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b954f6cd21d6d7f2564b135df80ebd41aa288f4d66b69a36d3919e46de81e95 |
|
MD5 | 2adb4552497218730d5c6eb03a5caf9b |
|
BLAKE2b-256 | a0b492df6a3772b3e784ad00d0a0ed8ff6a3a3eaba504c6f5590030e5fa0fdb6 |
Hashes for pycryptodome-3.5.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02ab86165edbe673b73685322cc948e98fc737ea7436aa3aed12f984e2d3ea5e |
|
MD5 | 0fbebaee315362225355abdea025a026 |
|
BLAKE2b-256 | 2b5d1eab91ecc4451695e43002f15abc062c26cf40af2e9cb4b0f8454c05bf12 |
Hashes for pycryptodome-3.5.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7e919dffd8b3c2963355ba51bf6ba9065fd1eebb7dfa49fde48494a9aa26e63 |
|
MD5 | 92c23f73f80913e1679a6378ff4e8d72 |
|
BLAKE2b-256 | 975e0b2ee7aabdcfb0a65b58edab1040db7d7c0cd944f1cf0107e6d54b04bc70 |
Hashes for pycryptodome-3.5.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efe41caf2f260599d813813af01f0094297c93da6e522cfce4c15bf5db36b904 |
|
MD5 | 7266d9558797d04d0fa66de5c186cedc |
|
BLAKE2b-256 | 1acf2fbe9a0776e8a6b222176f19ecf2ec8ed99da8e07b0bb34e50d6a3dbedc4 |
Hashes for pycryptodome-3.5.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f58ac5b78ea55fdc9ff382b1412e0d01b9da4a18734dce17f5636a7adfd1d990 |
|
MD5 | bfd985620021a10fcde9792ed134fdd0 |
|
BLAKE2b-256 | 64795a709026f53ab74b56156b48c1bef93704a014ef0fe82cc801c85318de13 |
Hashes for pycryptodome-3.5.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 556588cdef04d6495ddd467e71a0abb9a85ff9c0594e9baf0c603c124d77d431 |
|
MD5 | 1f19c12873e7aad834c680790459c698 |
|
BLAKE2b-256 | f2248fdce93cf9351b1865bf2126d351538880812d217712a8cb323ebbffeb24 |
Hashes for pycryptodome-3.5.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd4eba1951a92a81d67c6aab8849df7a375e98fd119ad85ad444aaf1379c2037 |
|
MD5 | 3f009c7b803eed462e67f5422d999ee5 |
|
BLAKE2b-256 | dd609b061f14c01410cc43745a73b670b39a37e536c258990aa65dce2a0a868a |