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, P-384 and P-521 curves 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.9.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb9e8ef672b7a961f90e0a497718e0f052f76324f216840a4ec30248e4d19f20 |
|
MD5 | 2a2badb5aadbdb66927604f9cadefd1d |
|
BLAKE2b-256 | 020d79a4a49c75e7f1ad152fc448e02269d4bedae9059c9b2046176f9339d24d |
Hashes for pycryptodomex-3.9.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4846ca0f2363bdb934c556667b056331d4aabd48f20924b0c5583a49d764d3fc |
|
MD5 | e18002b191a8a377059e642df51d7d8a |
|
BLAKE2b-256 | 61dfe5debb1c5dfb38e7e76f7788df19bcad1324c8b3abc7da5a229485f3301f |
Hashes for pycryptodomex-3.9.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d5b1159a24a56fd3359b7b1aa1e4331c394033eababb2972bb923d6767968db |
|
MD5 | 51ef9356c4da56cccd93e62f439290ab |
|
BLAKE2b-256 | 8bc35a8c8210280a9d0d9b23279758ff5d84125d9bb08a930ee1e8bcaa820b92 |
Hashes for pycryptodomex-3.9.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11453e8628cdccbcb08e04405298d659c0c0458cf9bf23eaaa3c201f8d635389 |
|
MD5 | d7bfdbb11e7168f5c12a4aba7b90cfc9 |
|
BLAKE2b-256 | a49de14316e276def00729ef8ce8f37d8e72bd91bcb4c7d4555fa5f1b9d02351 |
Hashes for pycryptodomex-3.9.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27317f1e8e496a2f208b1c40da425d5fe760b494f95c847bb7c3074c95a8edcb |
|
MD5 | f6b1eea7a16ebe7e7646820fee1a5e15 |
|
BLAKE2b-256 | e2e74e473f5ef6fa301f4921cf9f8c3936080b2cbb4b073c2c45e5302c001097 |
Hashes for pycryptodomex-3.9.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c63040e0313e27b62b0f4295f41adecf96cde7ff4d49f653b81b1958cb1180bf |
|
MD5 | 2696ee36442af67b743655e1c3b16056 |
|
BLAKE2b-256 | d9d549c098bb05a7044a80fa5af5cf17f2e6489c723cb6b219ece1655a1082bb |
Hashes for pycryptodomex-3.9.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f048069aa7b530f1c5e84d55c2b28ca7a7272bb3b8d28829d454a94bec6529a8 |
|
MD5 | a9aa5fd8d8ed32bc8b170d7880400cfc |
|
BLAKE2b-256 | 1317beee5275ae7e9b6bfc28d6b492cd2a46ff63b7fd325e3cf0bdeeb425b6fa |
Hashes for pycryptodomex-3.9.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5745ca86a4e88a775b7cace28b947a86661d5cc09ecc1c8d97293a7d20c1bb79 |
|
MD5 | a69fa5a1d7ac84df65854b73717dd535 |
|
BLAKE2b-256 | a0a34f36a5b68c4188c6f7a087bd1b157094e6a71b8bd1cbe2535e685ae1b562 |
Hashes for pycryptodomex-3.9.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73a8acc8ff7f09d482e481757d92a250f803e66e0f248019df90a69e61840180 |
|
MD5 | da2dde702c8a09b7d8e8fbd47d90fa9e |
|
BLAKE2b-256 | 8c0971df40f7d55f97378cce6575b737090124bc9dcae5dff9b3bf0e7d0d024c |
Hashes for pycryptodomex-3.9.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 561905b459de41c3ad19912cdcd88c8e24295d01e97b7b2a63d4188c8e4e0dbc |
|
MD5 | 4641828c501179162a4fe40124d8fefe |
|
BLAKE2b-256 | f6cf87866152aab554a6bc243976dfb0b4973b66cfae2ce66fc5b2cbbbf39617 |
Hashes for pycryptodomex-3.9.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22e050089f60e70b97909fe62612ee9589f0be1c928c2aa637f2534eddf61632 |
|
MD5 | 3b16383bca1f75c53319dd5ee03e4ff6 |
|
BLAKE2b-256 | 0a17bdb30881bb5ee9863b08c34a6e76f4807314dbb4d2b8f12b1614ef6f6905 |
Hashes for pycryptodomex-3.9.0-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e530b77bdff5c2bf3065e6a088e1602ad193b43e285bac196d4b8820308ec6bb |
|
MD5 | 4c735288908ff74575c1f45bda2325fb |
|
BLAKE2b-256 | 44513dac4b7711ead83c0bc6b7418800e214be015d4130c9ad14ed7f9d7b1bef |
Hashes for pycryptodomex-3.9.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a998b390a80fd0d22c7d9fbaf49a9a11772ef90495a8baecdea2e6d09929937 |
|
MD5 | eded38ed8d8bb4cf66119abd4923f640 |
|
BLAKE2b-256 | a089e3a3b8d0bb8c49765bf4ec5f07e46b96d50ed12722ec6d42347f62c19afd |
Hashes for pycryptodomex-3.9.0-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a01c99532c5f7ab96274b5c9f3e135315b79b55ba5c8233fc4d029e0369e94df |
|
MD5 | f06025b54a08ee2e96c19b20feec222b |
|
BLAKE2b-256 | c34fb43ad7858deedaba41541b8e6081f64f223994d86487f60bb6ce7f2fc931 |
Hashes for pycryptodomex-3.9.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce8edda46374c344de87089f9887ad4dd317bb4a22f91f1844202eaf14b08de0 |
|
MD5 | f0ca317d027df6ce887d89741917c08a |
|
BLAKE2b-256 | 52bca97c2b2b326ed2193996ae84ef87e0ff2ddfb6f79c466b3963266f729d7a |
Hashes for pycryptodomex-3.9.0-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8601613ebc329b853e466f581ad1156638989926e0dcdf52952542a89883836c |
|
MD5 | 6b1b1a878039395c3e441af6f7c36dfe |
|
BLAKE2b-256 | fe953304e2e067aacdf644afbc5f02a6270e5726719b079d5401997699858fbe |
Hashes for pycryptodomex-3.9.0-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 550f5e6f07b091f986023f871fa8a2bde9875ccae51d4bd07b31fa9855fe994f |
|
MD5 | 650adcf831dd13884f5c98048bbd716f |
|
BLAKE2b-256 | 7e2587114b402dafb1f55a720ede384f5112ffcbad16fac5499f726f670167c7 |
Hashes for pycryptodomex-3.9.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ce1950ba6544eca4d6fd7386e2502d4bd871fcbd5e5b977604f48ea37b29fc6 |
|
MD5 | 5a9b61dfa7f1588cf3ff1078450484a3 |
|
BLAKE2b-256 | 125ee555a4fc3a181984d1be682654737c02f2e6a1641af085a512efb9a19bab |
Hashes for pycryptodomex-3.9.0-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c812cb9f3af63da8eaa251e7e48f8b38c4e40974d2bdae2f0ca7a7a12549727a |
|
MD5 | a318af4ad22f6311d130e481ff16fff9 |
|
BLAKE2b-256 | 67f24aebabc9a2935f3b14c38b74e77bbd77a21281af71f50f8a4610c8261ed6 |
Hashes for pycryptodomex-3.9.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6a9271c842e93c349b6007676a62d03dca712c9f4dff66c3270d50504ca9014 |
|
MD5 | fa9eff75f709c6790fdedee9b4e0827c |
|
BLAKE2b-256 | eb4dccb521b3cfee6e802627db3115b07a2e6c955a5b0810cfe88e02a0a3f785 |
Hashes for pycryptodomex-3.9.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0100f9b93d0119d846a33e6cb5001ee208519b81c6acf76da614b71de75885b |
|
MD5 | b0e91d2d9c59d1cab4e92d89c9601e20 |
|
BLAKE2b-256 | 3f26afd527bdb09859ac20f8ecd4ae670fe6ddb59cd7b129f15d0f867177ad00 |
Hashes for pycryptodomex-3.9.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32e2fe1d0c5fada45b22b647f88367b210dfea40a5cc849b142b4e9fa497c488 |
|
MD5 | 0c72cecc28126724614d4ff8db9f7f31 |
|
BLAKE2b-256 | 193b0f3400fdc82e47f15a5e5ccd88237d161f598f77b92ac36505421a5372f6 |
Hashes for pycryptodomex-3.9.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46dda35fbed5426794ab64d483d6257dc43f52e78ba934563492df7cb89f7de6 |
|
MD5 | 9eccf417b80bf79d93cd2ed8f9ffaa3a |
|
BLAKE2b-256 | 5975eb1cf36a883c13da1aae3fd32c73b89b5f8b5544c09a3c26e510e44f0f3d |
Hashes for pycryptodomex-3.9.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 020928b2831b2047288c9143f41c6690eb669d60761c7ca8c5ca743a2c51517c |
|
MD5 | 3f158c543972441463e4489cbd550b28 |
|
BLAKE2b-256 | 2efad1f7cd2bb96743f602456e9a006ae94b155ba0349ebed0f501155af3f05a |
Hashes for pycryptodomex-3.9.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96f8622cb8061f4aca95e52cc835659f024bc2e237ee6a9d01117873b7490b98 |
|
MD5 | cf507a6c612b9a975b3a1594fede4cec |
|
BLAKE2b-256 | 531fc4558b939dc289afa35df036f5597143ee6f9c45449539103689d75f24ba |
Hashes for pycryptodomex-3.9.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de58de0d5f2fb9253707ee718e1378f2194fdd394cdbed1b6464ab44642f5217 |
|
MD5 | 1dd9dd8a1e5229bd0e829b340c899dbd |
|
BLAKE2b-256 | f923ce4de07b905fe77ef5356f6a7d121d45223d050cc65bfba531d8d8380e42 |
Hashes for pycryptodomex-3.9.0-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c2a3bb28dde992f97d856937e973dda0462bf3acb7d0009308a81159a35323b |
|
MD5 | 42235d6da3689341a2f94653961c92ee |
|
BLAKE2b-256 | 2529a8a34829d00963a02130256d1c9449eb00a5bb14672f5d10ae01d5ef01bf |