Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.7, Python 3.5 and newer, 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, 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 pycryptodome-3.10.1-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bbf7fee7b7948b29d7e71fcacf48bac0c57fb41332007061a933f2d996f9713 |
|
MD5 | 439326ec050f847c385cfe2933117e7c |
|
BLAKE2b-256 | b20c1cfc4700b15bc155c76a42f504379ec15483bf57dbf41c3825147cbf5865 |
Hashes for pycryptodome-3.10.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12222a5edc9ca4a29de15fbd5339099c4c26c56e13c2ceddf0b920794f26165d |
|
MD5 | bc86b33d69086ca4236b800a91f82655 |
|
BLAKE2b-256 | cc3eecd3f065089b7aaabb32606aae8f438c4899526500bc40cd24dcf51e7465 |
Hashes for pycryptodome-3.10.1-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98213ac2b18dc1969a47bc65a79a8fca02a414249d0c8635abb081c7f38c91b6 |
|
MD5 | 1be8740ce968ec04088efcbae66b215c |
|
BLAKE2b-256 | f1fd891789d2d3f195bee4322d89fc960497c0577bf73f20c39ca0e81e13742b |
Hashes for pycryptodome-3.10.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d2df5223b12437e644ce0a3be7809471ffa71de44ccd28b02180401982594a6 |
|
MD5 | a314b3c095ccfcaa07ab73051d9215d9 |
|
BLAKE2b-256 | b1b3f2071e19afe8ab7d1cdde4af847fedaeb6ffc285181a6518eb79d2556ee5 |
Hashes for pycryptodome-3.10.1-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f977cdf725b20f6b8229b0c87acb98c7717e742ef9f46b113985303ae12a99da |
|
MD5 | 3dc00c8764a07d2300471c9863947bf1 |
|
BLAKE2b-256 | dfe3425c117fdec2f67c3f3c0640962b46d7f0494f6c0e551057f07c2551f176 |
Hashes for pycryptodome-3.10.1-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3bf558c6aeb49afa9f0c06cee7fb5947ee5a1ff3bd794b653d39926b49077fa |
|
MD5 | cde2f6b59e5844df788dc8e90c3b9285 |
|
BLAKE2b-256 | f606558d2cded3c4bbf4d3de45bdde8c76a42100e5302e6c1d6305a1e61920cb |
Hashes for pycryptodome-3.10.1-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 758949ca62690b1540dfb24ad773c6da9cd0e425189e83e39c038bbd52b8e438 |
|
MD5 | 22f56e61df6941972596f5a97c42e143 |
|
BLAKE2b-256 | 58f27d3ccef1c8f3047ffa5c03c3d178d74f85af53f0749424130b05385b07c2 |
Hashes for pycryptodome-3.10.1-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09c1555a3fa450e7eaca41ea11cd00afe7c91fef52353488e65663777d8524e0 |
|
MD5 | 998302608d1c015d5d6480c4272689a0 |
|
BLAKE2b-256 | eda0ca1411bfb7ea80e74d9863e530d1b5c582b4433bf04d3edecf06ba57e3be |
Hashes for pycryptodome-3.10.1-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fd519b89585abf57bf47d90166903ec7b43af4fe23c92273ea09e6336af5c07 |
|
MD5 | 9c540c2b0d39d5eef45ade1566ee57f3 |
|
BLAKE2b-256 | f10bbf5bd5a7643af6265205c06027ada49e853f26b3d3a0fd7e3baf19098876 |
Hashes for pycryptodome-3.10.1-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b6f711b25e01931f1c61ce0115245a23cdc8b80bf8539ac0363bdcf27d649b6 |
|
MD5 | cb74676101d62b1b66ed7d50d58be2c2 |
|
BLAKE2b-256 | ffbcd212f3665ca89437523741662e9219cbd77eb15e70dbc79ce3fab5800ba6 |
Hashes for pycryptodome-3.10.1-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc7489a50323a0df02378bc2fff86eb69d94cc5639914346c736be981c6a02e7 |
|
MD5 | d1c84a20c30dceefbb665cd642c2e694 |
|
BLAKE2b-256 | e1e5f30cf194e17a7b07f58e1944595497e6167e3aae90b545ccca0ce8dad09e |
Hashes for pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 501ab36aae360e31d0ec370cf5ce8ace6cb4112060d099b993bc02b36ac83fb6 |
|
MD5 | fb1575c5096c2236b9124263e02927f5 |
|
BLAKE2b-256 | ad169627ab0493894a11c68e46000dbcc82f578c8ff06bc2980dcd016aea9bd3 |
Hashes for pycryptodome-3.10.1-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60386d1d4cfaad299803b45a5bc2089696eaf6cdd56f9fc17479a6f89595cfc8 |
|
MD5 | 733242bfd0bd597a5f1835bf0e1a4449 |
|
BLAKE2b-256 | fa46fc3cdba27fd2989ce08a874a327c4587922faf258cc4bf3b07a20bfdd6fa |
Hashes for pycryptodome-3.10.1-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a92d5c414e8ee1249e850789052608f582416e82422502dc0ac8c577808a9067 |
|
MD5 | bd6058e327995ad6022558ae3274acad |
|
BLAKE2b-256 | afefbedde9b7a1f237b743eb307e6c247369c2ae5ca6a79b61c064698cfd78cd |
Hashes for pycryptodome-3.10.1-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3105a0eb63eacf98c2ecb0eb4aa03f77f40fbac2bdde22020bb8a536b226bb8 |
|
MD5 | 8c6b3feb5dcffeef20ae21dc8c47dfc0 |
|
BLAKE2b-256 | 27e9d3926cbac277c0a46b24b248b2d742ff46851d1726c8adb2e0c26758d5d5 |
Hashes for pycryptodome-3.10.1-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31c1df17b3dc5f39600a4057d7db53ac372f492c955b9b75dd439f5d8b460129 |
|
MD5 | c94d34858b098d42ead82a427e6a30a5 |
|
BLAKE2b-256 | 49c7afb27683063b669a15c6599fe5ac8678020acf9e9ab6739cb8ef969255fe |
Hashes for pycryptodome-3.10.1-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8eb8b6ea09ec1c2535bf39914377bc8abcab2c7d30fa9225eb4fe412024e427 |
|
MD5 | dab034fbc0245415abb3c17509856e8f |
|
BLAKE2b-256 | 74f1316204eccd6b8c483a99c9851a963fe0bf8f1fb300fb48934539249ebc64 |
Hashes for pycryptodome-3.10.1-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3d6958d53ad307df5e8469cc44474a75393a434addf20ecd451f38a72fe29b8 |
|
MD5 | 789ad65f7c04617325e210a0f8aacd4d |
|
BLAKE2b-256 | 416f70d975f1da4b745a7d0d8d6683eeaff6c0a29aa8e36e11630200c7802859 |
Hashes for pycryptodome-3.10.1-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0a4d5933a88a2c98bbe19c0c722f5483dc628d7a38338ac2cb64a7dbd34064b |
|
MD5 | 86bc42f5367488f16cf25f46322d4759 |
|
BLAKE2b-256 | 7f9fed0d72d08cefe4637f62a7af867503222fa88a3435fcec5fdef3f419954a |
Hashes for pycryptodome-3.10.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99b2f3fc51d308286071d0953f92055504a6ffe829a832a9fc7a04318a7683dd |
|
MD5 | 3f01c77f4a8576308b4d0729b491adeb |
|
BLAKE2b-256 | 24c77a9c6881516e25ef6a7699ecd74a95478974a98762481b6fbd53d2293e66 |
Hashes for pycryptodome-3.10.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77997519d8eb8a4adcd9a47b9cec18f9b323e296986528186c0e9a7a15d6a07e |
|
MD5 | 2998ac451dd3499d64a859c7627dcbdc |
|
BLAKE2b-256 | 21b014374bbd920e713c5455f59a8f00032cc46a3afa0b16adc335c015ae550a |
Hashes for pycryptodome-3.10.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1723ebee5561628ce96748501cdaa7afaa67329d753933296321f0be55358dce |
|
MD5 | 371c1a546d85f8b671d7205425c73e38 |
|
BLAKE2b-256 | ae41521ff15650f54709799b35d99ecdc95101814111d9659f23dd4f9c93ca50 |
Hashes for pycryptodome-3.10.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38661348ecb71476037f1e1f553159b80d256c00f6c0b00502acac891f7116d9 |
|
MD5 | 930f745461617e997305511d2d13cff1 |
|
BLAKE2b-256 | 0b3840844348189b815dd2a8ce941d364960a18c31d515e626cd4cf45e44b88e |
Hashes for pycryptodome-3.10.1-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2603c98ae04aac675fefcf71a6c87dc4bb74a75e9071ae3923bbc91a59f08d35 |
|
MD5 | cf8cf9a2d298f05725f4374f8da5711e |
|
BLAKE2b-256 | 2efa4db1c63cf2ba98886fdc7b867bdc7f74655d852177b83dfee1350a0749fb |
Hashes for pycryptodome-3.10.1-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e61e363d9a5d7916f3a4ce984a929514c0df3daf3b1b2eb5e6edbb131ee771cf |
|
MD5 | 1c867d39aa59c48e5a7bc7f2b54319e8 |
|
BLAKE2b-256 | 9462d2c815ee1770e64d9ae9d97b557db1c25fc33ce9a9ae777d70a83e6b82f7 |
Hashes for pycryptodome-3.10.1-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dea65df54349cdfa43d6b2e8edb83f5f8d6861e5cf7b1fbc3e34c5694c85e27 |
|
MD5 | cb0d8182dbb38ce015a527ab6ff9db37 |
|
BLAKE2b-256 | 3dc1aa754645ea3e6898b5256b4538b785e510d8b8156c3ac2d01f7bb33c8a30 |
Hashes for pycryptodome-3.10.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f840c49d38986f6e17dbc0673d37947c88bc9d2d9dba1c01b979b36f8447db1 |
|
MD5 | ff6c97cc9c4a5c53683bcce06b5219e2 |
|
BLAKE2b-256 | 454d53a83a38de2e904ee3d5e9c9ca3a4860f1b24f6c35ce7cd05f5c1a1c2d58 |
Hashes for pycryptodome-3.10.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6260e24d41149268122dd39d4ebd5941e9d107f49463f7e071fd397e29923b0c |
|
MD5 | 8df91b281bc71f043fdc6798f04680e7 |
|
BLAKE2b-256 | dcab35af7b772b58b1000bb4732be7a8d402394dfda655c0f9b2a3be0d490821 |
Hashes for pycryptodome-3.10.1-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c5e1ca507de2ad93474be5cfe2bfa76b7cf039a1a32fc196f40935944871a06 |
|
MD5 | b8ef121375a977bb9e74f020b18714ba |
|
BLAKE2b-256 | 2e2bc8805a9b67028e8833ef4d522ddcadf8a594c0fef348ae4a9cc223b513c1 |