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 pycryptodomex
All modules are installed under the Cryptodome package.
Check the pycryptodome project for the equivalent library that works under the Crypto 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 pycryptodomex-3.8.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96352d121e5a750b006e2a357d0a9913f12c6652ca07a5e61c74f63d8be0394f |
|
MD5 | 1617a6819155cf285ee94371c6189a2e |
|
BLAKE2b-256 | 548ea919bf76addfaf1de4867b7be2b014d90f752a4cdf2a367a7aa8ad84fdd9 |
Hashes for pycryptodomex-3.8.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f04359d03506c4a8b0a7d178afda8dca78405bf6f8e8f2080d5206fc7733631a |
|
MD5 | 1b9dc02e9a02af1dadfcca44311ad1f9 |
|
BLAKE2b-256 | e7e403dc0e8acda996df65a2b23cdfef3f6d9f38dbbae493243844b86246747a |
Hashes for pycryptodomex-3.8.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae044ff318656aaacdfce4d91c369ead871d170d03dfd44ee37e46734f06d24e |
|
MD5 | 5c682c3c698050e3079e5310ad8b307c |
|
BLAKE2b-256 | 7473ea90ad8e5b890cbbd5e6c6dd6d7132a6390a4e9271a8ba95a44afc83c52e |
Hashes for pycryptodomex-3.8.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f26d76c5430efc44b7a3ca4f5f661f3cb314a33bc2a9656f89f44bf73514446c |
|
MD5 | be641b48c0a43a12cb31ac6b643d9707 |
|
BLAKE2b-256 | dad8d6b63dac0d8bb4e698ebc48dcee683586e1e84b3fcf0abc7277f35c1dbbc |
Hashes for pycryptodomex-3.8.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47ac3a9e87e559d1bfd60ebb5a81eac66f080ec5593c77d9e33b811bee929c87 |
|
MD5 | 9e58d9cd13f2b78830c2dd2b6c00e649 |
|
BLAKE2b-256 | e860d3d1155cbb6f88a94b48aea30c421c55f93e5223860a0be5727e1feb5431 |
Hashes for pycryptodomex-3.8.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | feb7673ee7981cee624c9cdb3446a7d909e99e7296eedef973e766a2bd5128ff |
|
MD5 | cac456cf0e9341fa1e1b180db8fdf7c7 |
|
BLAKE2b-256 | bcba8a77846f9c3d60196a0e59e9d0aec3a7f4e509a5cb612d720a488ff9095d |
Hashes for pycryptodomex-3.8.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | deb56cc3b9381b0d5a2060edb6e2ea31351c4b569abf52216d05c91a16214ac3 |
|
MD5 | 23b165052040be97cf6b9a3ed8492d53 |
|
BLAKE2b-256 | 11c4b27abbd28153d180a5289af2b05bd622ac1571c7bef59f1953c5a81ac8f7 |
Hashes for pycryptodomex-3.8.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ecce5ab26737dde0beeff894344d56758e0711f2883619f10625d6a46d8116c |
|
MD5 | 7ff475c128accb287e027d5f874af53b |
|
BLAKE2b-256 | caf74684eee2a961234deb738053d2ef969e67ba463836310881666a5162ce86 |
Hashes for pycryptodomex-3.8.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3fe77a6558d21481d4c1290462eb3c9498bad46ce4cd979ff9dd2dd76b5700f |
|
MD5 | 50152b00a4a272a1087d488b0b04138f |
|
BLAKE2b-256 | 0936efc4451da7dcae8859d7906cf0d0fff54f2a0bc6da9f6e65333be243d4df |
Hashes for pycryptodomex-3.8.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 184356bb5039fc24c337dbe485b406425d6f0ee2659d59c313e69703063bf518 |
|
MD5 | 04356d64e2d9d26cf4a52a92f8978489 |
|
BLAKE2b-256 | 33c791f5051a1cd84ef9d64b3bb3ef339b0316e2e88f35c46fbc62300857a2e5 |
Hashes for pycryptodomex-3.8.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00e0a7c992756c8d6d63f2cf992276ca62e702629bfcb54f57a192624c22c3d9 |
|
MD5 | ff4d103a91a84852230b64a8cdb9754a |
|
BLAKE2b-256 | d50a9dbe5dca2abb1f54de6ac4f04556ffe2dbd953b262e4201292d4b957ce2d |
Hashes for pycryptodomex-3.8.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21cde61813059437206f745b620068d22cfe5059134eefe858ba7e4b639c410f |
|
MD5 | 688abf6a41ad6aa3be62e31c38cd4f65 |
|
BLAKE2b-256 | 3e97ede253b36f44da80592a186c7baec4e9179e70f95b44fbc76141af82956c |
Hashes for pycryptodomex-3.8.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73f72f7670d2182077fc36420e651ddc6eaa7c8478bf586719f051ecafec533e |
|
MD5 | c0381b596cfef2d4ada4a7f539da5a8f |
|
BLAKE2b-256 | b09ba8d740bc0ca24ff2ffc9c8cad5c1f9f2896970fa385e0419f44e3939a193 |
Hashes for pycryptodomex-3.8.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2bc76e6edbcc8b32465c7e47f045398bb857390aca0782bfc6985919cf9d27c |
|
MD5 | c2ca8f5f00d130a7ab4629530977f066 |
|
BLAKE2b-256 | 12a0728fcf4bef62486e1b7bc70c80d051d4b914be57a1d5940cebf0faa6a269 |
Hashes for pycryptodomex-3.8.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8186e82d2854738ae7c18c9683bf023aa13d564b5c845a4cfd83063cf44e182 |
|
MD5 | 4cf644717485cce2783c5ac175ddac37 |
|
BLAKE2b-256 | 136c983ead4fe19736cc433114020551f5b4cac8ce3b2e9938f36176f6b6f3af |
Hashes for pycryptodomex-3.8.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4bac3507bcefd43e26a92182bcde27c4e37dbe4385b12ba04025a8bf93be5e7 |
|
MD5 | 49a80561e879377c61ae410f750d337e |
|
BLAKE2b-256 | 36a4ee0635254147c3c805f8e7f0ff944b724fcd4c83f21165e3485f78f6e0c3 |
Hashes for pycryptodomex-3.8.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 088689b91b8dc0df52710e88ef447c6ca087c1f82398b8a41537c2a907f03e6a |
|
MD5 | cdd880ef32482c6598a363b4075f8f08 |
|
BLAKE2b-256 | cd2bae7c8dbd39c11309d8d8973c6ed8a698d5388db103ba2aa2b25d53e8f5bc |
Hashes for pycryptodomex-3.8.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f066c42bbc84c658d81aaecf36a14b71ef89a0353b17dc5c50f50fd7fb92fc15 |
|
MD5 | 7fc4d0678855f9fc376c73b390a4f3a5 |
|
BLAKE2b-256 | e3d26321b321fe6cf217d03dbb8c58b24e2d3bea0632662fce34bd363028b7b3 |
Hashes for pycryptodomex-3.8.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fab723651dfb40d25d8557bc0230133b29cf12835875cd56f77138ee467408cb |
|
MD5 | 0821b9eccad21cae4243b2e6f545b860 |
|
BLAKE2b-256 | 720861dda20187a05ac3056301fb03e40dc81442a448cb6b6856302afa9109ab |
Hashes for pycryptodomex-3.8.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04689a34f5cf54bd049371c6b16ca44ed4c4202f3f9d58ff25e75016808d076e |
|
MD5 | c2b3a063df48dcb1560de45ea62d87c4 |
|
BLAKE2b-256 | e7a5dd35383e127ff7d8c5dbf4da151216ba0f832898e4aa5514229ee7368abd |
Hashes for pycryptodomex-3.8.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42c089411f55663c08e04c5bb8ce51d18002534ae76e8d2e1dd560b3d44dec5c |
|
MD5 | 66ea29740f4b2178a25667509a0dc809 |
|
BLAKE2b-256 | 1bf14800315706b815e1a4c7c01190de47f75bc8adc541fe9f8737a3fb7624ae |
Hashes for pycryptodomex-3.8.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42e20e201267726c2d0687886d08f3e97192e0fa456535bb62274dd4b190dc0a |
|
MD5 | ca4b4b025e116c09bff87f140457cc96 |
|
BLAKE2b-256 | 7ae1a0925eba661bb51d902793977a32ac66cfff48f11c4f80ac83355bbd75a6 |
Hashes for pycryptodomex-3.8.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a18a7078cfdf61e020f0705c6b7188513973af68a26df42b7aaaa395b5e3e2f |
|
MD5 | f1a2b97ef21fe9ed646ab87e455762e5 |
|
BLAKE2b-256 | 9100ca08ace1032301a6661e4229715f001fe344c4d08b0cbf1bb838bcc8de97 |
Hashes for pycryptodomex-3.8.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d89db6097c644f814c9f8995a6a6e4b13dffcc82dcdb6ca06dc8a12545d36319 |
|
MD5 | 9d879124759cd3a47f8be890aec2b4e5 |
|
BLAKE2b-256 | d6615b337590c04077562ad2d39bc92d6a1f91d847ad0acbffd55720e02813b8 |
Hashes for pycryptodomex-3.8.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27a7968b231c1dec2a3d4cc66621c97ee623abda65fc1df392aa19a764f2e803 |
|
MD5 | 98adacebfd4cc1a3c06a80ec82a09d11 |
|
BLAKE2b-256 | af2545edda7c8e4ae786d0b8accf8a3c1dd1ee6c323e6495f8c56f5444c2a5a5 |
Hashes for pycryptodomex-3.8.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84182dd94089287269a93f4d49226915b3aab386cba587dd8ec68da01bfa3e25 |
|
MD5 | 231ffbf45bd0ad5306bb837ea03918b6 |
|
BLAKE2b-256 | 3f6f7412ebf78d043611c101071ae10eabf2aab5b6e09ba2e38fcd422ece727f |
Hashes for pycryptodomex-3.8.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 898c311e6fc8df2c4aba67c554276e5e798f8fb65d1854e26494f3d809314b91 |
|
MD5 | 22493bc733c3a1e5f6f070a7473273fa |
|
BLAKE2b-256 | 832ea56620698e671fbcf06b0a3d8edca65cd0ada805a819a4c273322182c90e |