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 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.6.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea09a059e4cf3d99a446f0a80ac9be54802542226cdbf8ffeea79a6ddc77f310 |
|
MD5 | 27cb789c7b68d81a6ca4b3163bcf7276 |
|
BLAKE2b-256 | 5633eb3751eb123d875e2007197746447ff12631bb4d14a492fe42fb8bb10686 |
Hashes for pycryptodomex-3.6.6-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff31cb6cd69c6683bd44e99bc4f36cb74a338cee58a3a9c5c19a8ee4bdd2f3b2 |
|
MD5 | 669f33a76389379187c5254d5c89ce18 |
|
BLAKE2b-256 | 61cd86006113ad4d949007a7a0ab50fc487f576947996cb9b28f0190c6fe2c66 |
Hashes for pycryptodomex-3.6.6-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2958eceb671795ec4e5f2164e4ec5ddc1788fdf4f72b18390f548de5e11c9dcc |
|
MD5 | e6a27912a1b3058ddc10f18b25c45d1c |
|
BLAKE2b-256 | fca592a2cad217ded2681ee1c395d0eee9ea87f0f3f0ed01106d7a591beff771 |
Hashes for pycryptodomex-3.6.6-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1dc3abcb853e8b2188d0c8d624dbdc575a1f23ae82feb9a99e4a69b7064df81a |
|
MD5 | 83254064739c9fc77ba860f428d1502b |
|
BLAKE2b-256 | 5351fa7a86b90f3f907ad6fd7904e393b89285fd6cdda5d94c031e845250d5d4 |
Hashes for pycryptodomex-3.6.6-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5844faf085ad3d92fb94d07347c69f193c0bd1f32843329c2a422addeb042c9 |
|
MD5 | b2a29987bb284f7b44b8e66dc2f09c6f |
|
BLAKE2b-256 | afd5f1495fe421a20ecaa5104ad2ce3fcc42a2e89107d3b4be111f5870e210f4 |
Hashes for pycryptodomex-3.6.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfc315eef8cdae280e404df64cf71f8673abcc81e646699b15722f41b82a4ed7 |
|
MD5 | d36d82ff23f286d2ff0ec9ee3c01a4e9 |
|
BLAKE2b-256 | bbcc3903e8018df8bc20c6a020682e82a94ca62b09aff6d1562ee67ffcdf55a1 |
Hashes for pycryptodomex-3.6.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0cc6ec20e6dfce1a6715ce60d71df3e9491461d525980821f71223026950b0e |
|
MD5 | 06728c42c043a462c46f264765e8557a |
|
BLAKE2b-256 | c655aa31d9b8b22e303206c22e63653283338aba4a8e6aebb805fe07cb7cf232 |
Hashes for pycryptodomex-3.6.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34b3218fcdcd59c26de75c4ff8a15e6472e7b88f9e5b3b193cb1c001e7a0e815 |
|
MD5 | 7412d8a6207ee942ed6e241e4b401250 |
|
BLAKE2b-256 | fe39058fcffc10b0f09351c1e1a3d924191cc6b68e872722084da184afc364c7 |
Hashes for pycryptodomex-3.6.6-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddf10a2a071ae749158d8fdad0cbc78f6197219721afa91e0752dd999fddf422 |
|
MD5 | b3b3d2d3ba811cf8e7dfe7df1c666a3b |
|
BLAKE2b-256 | cd9a9fb3df8e224e9fa530f62e944753608599044e571ff1af7d3f045d69d05e |
Hashes for pycryptodomex-3.6.6-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c54d3d2e3b099dae61124d7476311ab594df7eeec305f612a5eb79226cf36b53 |
|
MD5 | afceccf1a9ad222bc671bd2caeaff1ea |
|
BLAKE2b-256 | e451175cc2d1ac661c7fb932fd1ebe37a3689801ad77dcd84315168e65d5fcd3 |
Hashes for pycryptodomex-3.6.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f4d96cfa963960d190d3d6ef5e8f7c2c14815ff816999dff5efaa6bf7cd1134 |
|
MD5 | 50364e26c0493accb2c053d9a49647f8 |
|
BLAKE2b-256 | 47ce26c0793091b9ccc12806944fb2c7788a3444cc3a8d9942ffd2720b3f3d93 |
Hashes for pycryptodomex-3.6.6-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cf562fc5e5ddbe935bb6162d84a7e46e19edba8ac6609587ab9e78dc7c527d4 |
|
MD5 | ee0e72aeac059be2861b12624cea785f |
|
BLAKE2b-256 | f1b99b7a1996ace7618a110d0381b89de534628c271fbab8462564571b0ad0de |
Hashes for pycryptodomex-3.6.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b365bc3da05fbc15acd6600d41f84fe8ed903400566bc0d1a0fadc862b41c8e |
|
MD5 | 1a6dd7213afdf7d362d0c7afb40ad028 |
|
BLAKE2b-256 | d712c45b6e7506b39bfd8ca661d9bf8cbd6ac9d20e9bb9108dfffcd11f202b46 |
Hashes for pycryptodomex-3.6.6-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24bf22fffba3a7c1132a039d95256ca9e5016798111c7bf7d0091bfddb0e0245 |
|
MD5 | 9cc3c4cbd21ce43d6ca2abc8cc48c2d8 |
|
BLAKE2b-256 | fc0667b8560602b4b7c326573260c3c4b553868af49159c6495fe6175cb503b1 |
Hashes for pycryptodomex-3.6.6-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ab64112924be1905a22656166ec0eeeba275fb15c15adba6470bd030362e160 |
|
MD5 | bbed7d9bb37e59eedbb916d7ca60473d |
|
BLAKE2b-256 | bdd76b1bcdc92e15796a11d372b8dec5672d777e34d7c26632f7e9501de48388 |
Hashes for pycryptodomex-3.6.6-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13b77b7a177a2fd0beb42db84b21d7d4ab646dfd223989a3b5fa6a6901075ae8 |
|
MD5 | 13f462825efa8fbb3c3dc20010e86c54 |
|
BLAKE2b-256 | 9cf49c202f5c377b02c0e81f3781a10e758d0d22b566141da17c08ab8d354b7f |
Hashes for pycryptodomex-3.6.6-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40063250911af6ec5b3ccc80108e7a3be9d1695dd3d17104a1930861cbdb78b7 |
|
MD5 | 34e26b765b4e010a9d9cc5f15c1324ce |
|
BLAKE2b-256 | fca97047b7667b15653c39ca2585bf6e2559e0843213c23f2a0613d27119a63d |
Hashes for pycryptodomex-3.6.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a472d2271cfb37940ad80c4698affeaf39552e4c19ceeac4d5290fe71519e3f4 |
|
MD5 | bbfcb96f3c19d15812d4383210f9f6ad |
|
BLAKE2b-256 | bb11f5b2f03155a873e88fc74651f6f9e7e2409004fd25f808cddc673df40e9d |
Hashes for pycryptodomex-3.6.6-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 549d0a0884e60d876b975e18e791cf2aece077cb174f0d7d042982b5d36a6279 |
|
MD5 | 120179c0adb4864c1d28ae8c5cafd330 |
|
BLAKE2b-256 | 1328081b87adbb13aa267c933fa23f19f80843d8abd938f1163e39ffd1a9c7d4 |
Hashes for pycryptodomex-3.6.6-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26fde532deaed9781643be654b25fc899b97866b68e50bc015aadd442387c42b |
|
MD5 | 860f457348e5e3b894a8f1ca67e99df1 |
|
BLAKE2b-256 | 5a3fa921f800c48ee119902c48ea90ef7c6c34c169dc7fe3e518ed36c9dc28e4 |
Hashes for pycryptodomex-3.6.6-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1dac67655206c92eabf827cc3c9f9efd35d699057f12185f01245b22e02db5f8 |
|
MD5 | 1fedbd4d32636cf6fe93e8fd1b2bdd8b |
|
BLAKE2b-256 | 7ab9a1926457e9274d120121f4366a0efba3a8a3d4022ea25c3264c84ab2142e |
Hashes for pycryptodomex-3.6.6-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b8669f4b3fa386696b9b0366e69898dd626b119eaead50ee3b2c59c56222272 |
|
MD5 | 108b4127837eb8d150c5ff99320b8524 |
|
BLAKE2b-256 | 4fcad19ae100e55ef8162772be433e2ba481951735d8f95fe20cb2bb5d992d88 |
Hashes for pycryptodomex-3.6.6-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5144ad0df1009cce6d03b71c2e5843ed96be91ab746e58e8e64ef9bca5209bfe |
|
MD5 | 6962ec05557783a2c60046c5c6dc5361 |
|
BLAKE2b-256 | 3a2e622a647a1204c80f403ef5a49acd8ae1f99a68847c0d9958df337ccf887d |
Hashes for pycryptodomex-3.6.6-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8478a443bb747c2ef1d508a09eeb57ff8c2ebbd8ea0e6e2351d483c23e725b3 |
|
MD5 | 66ecdff373f6ad3fbe1c4f57ca859603 |
|
BLAKE2b-256 | 8dda755ad2c7fef69b2bee77eca0e28918fb0ae7dbe3c9229da09058169b6231 |
Hashes for pycryptodomex-3.6.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5fcb23f936912b6cfb475c7b115aa2e31b7fed409bc947c6190503d9f7d0338 |
|
MD5 | a4e40b057f3704c75cd090a5f5352fae |
|
BLAKE2b-256 | 6da32dbd14dfb2dfdffd253f85530c17e18bf07127bf19686de64ef622959338 |
Hashes for pycryptodomex-3.6.6-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1baf0d485853cfa8f87c969148dc040ae81a8de3dcaaeb07b3f40a90ab2ac637 |
|
MD5 | 11a6feae866001ea0c5b063aa2043164 |
|
BLAKE2b-256 | 164156c7299a3db152998312bb8dce0f36a2b7e65b5366d67e5726785adee235 |
Hashes for pycryptodomex-3.6.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a06e0e0965145cc0d625e1a031b49705aa2c6b4e16aa0044d4719fb1d639977f |
|
MD5 | 0c1ccb6f7a339118dba23915c1cf93f2 |
|
BLAKE2b-256 | 2e198d03486de0c3fa4475f9b6b9056d3e3d366323c1f8da74c2bb58f390fe0c |
Hashes for pycryptodomex-3.6.6-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e76d0148ffa5b86f1bcb111bd3950bc61fd50bed8b6b1cf9f5e56784378b55b6 |
|
MD5 | 3a854277b8dae471526f47fe2b37a558 |
|
BLAKE2b-256 | f2883084399b1ca281b1ead2a44a07118849a83df44e847aff36b05cfa82a7b9 |
Hashes for pycryptodomex-3.6.6-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1d4ea2382c1726ff65548f41dc79bd9d0345f3a47ba128768242eea470c6515 |
|
MD5 | 954f06c841d05e05322cbe8b90891579 |
|
BLAKE2b-256 | 50038c631522b7a3eed5ef3907029f18e2590f61811244fa3c9d85e5594036f6 |