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.7.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57199a867b9991b1950f438b788e818338cee8ed8698e2eebdc5664521ad92a9 |
|
MD5 | 3a78685fa59bd70963cb29757c249d18 |
|
BLAKE2b-256 | 6757b4b7c13ce6049ff02ec1da1a1b39897fa3ae5762bebee34d68c4c236b5b4 |
Hashes for pycryptodomex-3.7.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 614eddfa0cf325e49b5b803fcb41c9334de79c4b18bf8de07e7737e1efc1d2b9 |
|
MD5 | b3d92cc4be521bfd4a5cf6c73bf48512 |
|
BLAKE2b-256 | 8cd649cc79bc518f1b7838f7e3279410f60cc15de58e6034a0d4296dffd5b4f8 |
Hashes for pycryptodomex-3.7.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ae66244824d50b2b657c32e5912fde70a6e36f41e61f2869151f226204430d |
|
MD5 | 1723901a814f8f6ae68e751e368d56f9 |
|
BLAKE2b-256 | d34869e5ac059f8617fdf9e4b36eeae430e674c571cdfecf9a6e6636c07f2b70 |
Hashes for pycryptodomex-3.7.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a89dee72a0f5024cc1cbaf85535eee8d14e891384513145d2f368b5c481dcd54 |
|
MD5 | 521af59eb72eed8f2ab4d87217163972 |
|
BLAKE2b-256 | b328b94dbac05ca0b8b7d672a598a42e4446c0a949e11dcff8a84e1bcc721b20 |
Hashes for pycryptodomex-3.7.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb0c6d3b91d55e3481158ecf77f3963c1725454fdcf5b79302c27c1c9c0d2c2a |
|
MD5 | a8feae8c22e77de33fc0432cf1b44b61 |
|
BLAKE2b-256 | 0b72733ac8863fc92e900c55a44c4587f567375b44c18d627d0cd6c983c38d57 |
Hashes for pycryptodomex-3.7.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1650143106383bae79cbbda3701fd9979d0a624dba2ec2fa63f88cae29dd7174 |
|
MD5 | fbd8ca2fd2bc939d6175b18e27f9cb35 |
|
BLAKE2b-256 | 31346f6900147d43b02a06d18f6342f53b1f9fd8332a9f5d2c6113f05ad3e8c9 |
Hashes for pycryptodomex-3.7.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 284779f0908682657adb8c60d8484174baa0d2620fb1df49183be6e2e06e73ce |
|
MD5 | 41816088498c45e0ce4c1b6bcb21b49a |
|
BLAKE2b-256 | d1ffc7f9be1b6a64154199dfc0db6e5c3b5faddac3fe6107bf4e7811d529f9dd |
Hashes for pycryptodomex-3.7.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fb58c2065030a5381f3c466aaa7c4de707901badad0d6a0575952bb10e6c35f |
|
MD5 | bc1a3421dac543ec06ab696eb7ada42e |
|
BLAKE2b-256 | e7deef0632e4261b824c9b496a9f0036f173a86c43274d7a494a4776de7fe465 |
Hashes for pycryptodomex-3.7.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02c358fa2445821d110857266e4e400f110054694636efe678dc60ba22a1aaef |
|
MD5 | 8b97c27b7b0aeda69628c3af5f9d5db6 |
|
BLAKE2b-256 | 9834cb14b05b62381cb999fffdcc7dce8ae7ece1a1f24bc8d117a2a96bfa915f |
Hashes for pycryptodomex-3.7.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ced9ea10977dd52cb1b936a92119fc38fcdc5eaa4148f925ef22bbf0f0d4a5bd |
|
MD5 | 55c6f8c53c550c73f542691c1960b86e |
|
BLAKE2b-256 | ab1648037b250bf838eef77d279b11ab113d1bff489b4bc527cea1656a2e2ce4 |
Hashes for pycryptodomex-3.7.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c5349385e9863e3bba6804899f4125c8335f66d090e892d6a5bb915f5c89d4c |
|
MD5 | 2479ffd0d59fd18beedc0e71d18744ad |
|
BLAKE2b-256 | a4ff89f4f6336bc173dd801359bad764c41686f1f381c7b1f56c68863288a0d3 |
Hashes for pycryptodomex-3.7.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30ac12f0c9ac8332cc76832fea88a547b49ef60c31f74697ee2584f215723d4f |
|
MD5 | 48b24ae431d06d476c0014048e394825 |
|
BLAKE2b-256 | 15de761db8c576f3eb5ce15e1605cad1ea214eebb49885dc4d4bb34a2f93cb6d |
Hashes for pycryptodomex-3.7.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fb9f3e6b28a280436afe9192a9957c7f56e20ceecb73f2d7db807368fdf3aaf |
|
MD5 | 7bd205430dae6d0c633ed61c2a5a8995 |
|
BLAKE2b-256 | 16d928b968b2b6ff8eb49764a4c6349e86483c8ea9a6cd1d78c4070bd16f5f2d |
Hashes for pycryptodomex-3.7.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb31bb0c8301e5a43d8d7aad22acabef65f28f7ab057eaeb2c21433309cc41e8 |
|
MD5 | 804f739f53a1466d542298ffa2b6c114 |
|
BLAKE2b-256 | 812e62e5c1da6ae7973f5d7938d29052ef1bfab0260106e0e248ad4fbe82cb22 |
Hashes for pycryptodomex-3.7.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3f9ad4e3f90f14707776f13b886fbac491ebe65d96a64f3ce0b378e167c3bbf |
|
MD5 | 0f4c99d44045e1593236b0f6cfdc63cb |
|
BLAKE2b-256 | b87fd7560e59f3675a749b8937e2c0eb0e0e8769ceb2700348fe14a2de5f6fd1 |
Hashes for pycryptodomex-3.7.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96a733f3be325fb17c2ba79648e85ab446767af3dc3b396f1404b9397aa28fe5 |
|
MD5 | 14a96f9225274f5f4a4e760f21c38b0b |
|
BLAKE2b-256 | 6e6f57c36392c52536fbb242ad2d4a92d8ca9b5b948b6f9cc44df63a11e57dcb |
Hashes for pycryptodomex-3.7.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6714569a4039287972c672a8bd4b8d7dc78a601def8b31ffa39cd2fec00cb4b |
|
MD5 | b86d5a844960d28ccf0bdd38fc48a5c2 |
|
BLAKE2b-256 | 606521e7152e2b71b9148a445e4575f671b598d5dd4d0344f817b68ed4ccacf0 |
Hashes for pycryptodomex-3.7.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d546fac597b5007d5ff38c50c9031945057a6a6fa1ab7585058165d370ea202 |
|
MD5 | 5d24acc6b2a6ca6cbed40e59f88e3489 |
|
BLAKE2b-256 | 4acc5424d2e6a6803625bfe7bc8e750966cb793a4e6c051853409b62967e3658 |
Hashes for pycryptodomex-3.7.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccadde651e712093052286ad9ee27f5aa5f657ca688a1bf6d5c41ade709467f3 |
|
MD5 | 2a7d9b456f4e69d682fc91f146590248 |
|
BLAKE2b-256 | f048b8d61303fbfb189e51f641fd2ca853f8b4a1b4b909f9aa742114d003e61c |
Hashes for pycryptodomex-3.7.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12ff38a68bbd743407018f9dd87d4cc21f9cb28fe2d8ba93beca004ada9a09ff |
|
MD5 | 00a3b1def9aa1015787bbf9ed3933344 |
|
BLAKE2b-256 | 0fadb7ef22488679428b47d6689d9de25723cecc757dca03486a8e8215248ad1 |
Hashes for pycryptodomex-3.7.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa4036582c8755259d4b8f4fe203ae534b7b187dcea143ab53a24e0f3931d547 |
|
MD5 | a2cffc325b3f196aeb963d7831e6c8a5 |
|
BLAKE2b-256 | 48ba2ef094b869942238d0273d320b1c6cb71c76d1464d531064ad5161f17505 |
Hashes for pycryptodomex-3.7.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f038b815d66dea0b1d4286515d96474204e137eb5d883229616781865902789 |
|
MD5 | efd4f5f4077c0ce01d687734ad970dc1 |
|
BLAKE2b-256 | 386ca7f49121cb328613445bc92394d972931d4745e0062f86da5f5e119fe94b |
Hashes for pycryptodomex-3.7.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20a646cd0e690b07b7da619bc5b3ee1467243b2e32dfff579825c3ad5d7637ab |
|
MD5 | b6f768b53de4080b1f28bc87cb8b0371 |
|
BLAKE2b-256 | b80fd1bc03f073eb465700d2ae4bf2af4e6dd4e4107ce48054bf461e69936d5b |
Hashes for pycryptodomex-3.7.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f3ce5bfe81d975c45e4a3cbe2bef15b809acc24f952f5f6aa67c2ae3c1a6808 |
|
MD5 | 19dff788dde2e09965bf57ecacddac33 |
|
BLAKE2b-256 | 95cbb8c968d96f4b0569164e6aad49085c2f0e6b3fcf5355d5ae615068e0bec8 |
Hashes for pycryptodomex-3.7.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f8fe28aec591d1b86af596c9fc5f75fc0204fb1026188a44e5e1b199780f1e5 |
|
MD5 | 6d562477bce53efa98d374c6bef1a090 |
|
BLAKE2b-256 | 453f0a9977512bda379e4da8760c130c3f322d2315bf68ea8af01bb4ddfc2dd6 |
Hashes for pycryptodomex-3.7.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c3834d27c1cff84e2a5c218e373d80ebbb3edca81912656f16137f7f97e58e0 |
|
MD5 | d7735dc0e841410caac35315e0ef9283 |
|
BLAKE2b-256 | 347afd388ace1028abf66fe11e60a567397c7416ab12538b60ce92d6cab9f674 |
Hashes for pycryptodomex-3.7.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09989c8a1b83e576d02ad77b9b019648648c569febca41f58fa04b9d9fdd1e8f |
|
MD5 | 0cb111a85db6e7d0d1ca7db81da1da84 |
|
BLAKE2b-256 | 89c4367a1561cead9f91e40f5959cfc3a24fcd8fb4284589be5d7a611da19866 |