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.13.0-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3af53dddf848afb38b3ac2bae7159ddad1feb9bac14aa3acec6ef1797b82f8d |
|
MD5 | ed91dbf6562cf1e54ac4748e472122b8 |
|
BLAKE2b-256 | ddaa7a8e9917230d0eaece68e967817c937f1501e25247a0701e4a41c0b09485 |
Hashes for pycryptodome-3.13.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 765b8b16bc1fd699e183dde642c7f2653b8f3c9c1a50051139908e9683f97732 |
|
MD5 | 8d038d6d104fff4b1f356baa4c14c3b5 |
|
BLAKE2b-256 | d657ba17590753857405443a4f93ce08148d06a1114d67e7ba8854a192c540f0 |
Hashes for pycryptodome-3.13.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb9453c981554984c6f5c5ce7682d7286e65e2173d7416114c3593a977a01bf5 |
|
MD5 | 598f1bd4fcee869000e9c61522f63edc |
|
BLAKE2b-256 | 2f8b55c79b7dbb50cd78418a14690a0966dbd54d5dd68569a3badaa6257312f9 |
Hashes for pycryptodome-3.13.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d92a5eddffb0ad39f582f07c1de26e9daf6880e3e782a94bb7ebaf939567f8bf |
|
MD5 | 989a254d04df3ff6988ad392226a57eb |
|
BLAKE2b-256 | 24f5f5c0249881d6b66666ecef07c7ae551549c54f8a7c0229aa3f193e013703 |
Hashes for pycryptodome-3.13.0-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a8b0e526ff239b4f4c61dd6898e2474d609843ffc437267f3a27ddff626e6f6 |
|
MD5 | aac1ae679abc6f965cba9e9bf54b34e1 |
|
BLAKE2b-256 | 1124163f8555d554e96669220c0480dc641b7d71e8beedf02d051d5c0739c999 |
Hashes for pycryptodome-3.13.0-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 720fafdf3e5c5de93039d8308f765cc60b8e9e7e852ad7135aa65dd89238191f |
|
MD5 | 76ce5cc628d0c5c5d8e5471a7e755d09 |
|
BLAKE2b-256 | b5d88ec57454c806760c0d36e9b337c6894d08544e1876394e5467e97238d8d3 |
Hashes for pycryptodome-3.13.0-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e420cdfca73f80fe15f79bb34756959945231a052440813e5fce531e6e96331a |
|
MD5 | 482169eef36d59b81bca92c469fa31a2 |
|
BLAKE2b-256 | 1274dc5a9e56397ffb11ab8031425b0f88396b90bff5c894306437dd51104eb1 |
Hashes for pycryptodome-3.13.0-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0896d5d15ffe584d46cb9b69a75cf14a2bc8f6daf635b7bf16c1b041342a44b1 |
|
MD5 | edeab1b7ef4c89405d25f519cd968a8a |
|
BLAKE2b-256 | c5c1d09c5cc1decd1001eaa0ef657b105cc9b577b589c6213c14e336d31abf69 |
Hashes for pycryptodome-3.13.0-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5d72be02b17e6bd7919555811264403468d1d052fa67c946e402257c3c29a27 |
|
MD5 | fee5ca3f21a8bdd18effb871d2490d8f |
|
BLAKE2b-256 | 8e71d5ab35f7eee2a7cdd243036e19eda01deac1f56ef7ffd3ef78494c425837 |
Hashes for pycryptodome-3.13.0-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3affa03c49cce7b0a9501cc7f608d4f8e61fb2522b276d599ac049b5955576d |
|
MD5 | dd6e6472cf75cadf9e836848b2a2822e |
|
BLAKE2b-256 | 505ffa5f7b67ea0e79ef7b317f9d1f12b217b517bfc4663f1010ab736f02f61b |
Hashes for pycryptodome-3.13.0-cp35-abi3-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 073dedf0f9c490ae22ca081b86357646ac9b76f3e2bd89119d137fc697a9e3b6 |
|
MD5 | 70b6b2a4034d9109c955a3dcafaa6f75 |
|
BLAKE2b-256 | 499bf47ef97c065fd44e2a4500f1daf68e9c7f4c96aeffb89c78d256c5bb0ae9 |
Hashes for pycryptodome-3.13.0-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6db61335d07220de0b665bfee7b8e9615b2dfc67a54016db4826dac34c2dd2 |
|
MD5 | d0e6731e2209117645076dedbbe53a3f |
|
BLAKE2b-256 | d745c50c9c800603edfd0981d2ae4d7d97523c24e085d50d527ea78caa376d4b |
Hashes for pycryptodome-3.13.0-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 857c16bffd938254e3a834cd6b2a755ed24e1a953b1a86e33da136d3e4c16a6f |
|
MD5 | 0cc0db48184055028a5dbe41a9e810cb |
|
BLAKE2b-256 | 0e8a73ed348a1ba984783e2cda8f557a2883faf57bbf127072d3a8f8ca23fab1 |
Hashes for pycryptodome-3.13.0-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | deede160bdf87ddb71f0a1314ad5a267b1a960be314ea7dc6b7ad86da6da89a3 |
|
MD5 | 241989c08af5a8266a3b935bb2b4609f |
|
BLAKE2b-256 | 676cd56392ba787168651747988ea69644effdfe8b50912b2e6d5b1cc18de27b |
Hashes for pycryptodome-3.13.0-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51ebe9624ad0a0b4da1aaaa2d43aabadf8537737fd494cee0ffa37cd6326de02 |
|
MD5 | e3a5475106983d8dfc8478b357ec0390 |
|
BLAKE2b-256 | b9ee02c479d02a325295f0b1a8754c8c270e1b9334c75a2891c8f37022bd86b3 |
Hashes for pycryptodome-3.13.0-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 008ef2c631f112cd5a58736e0b29f4a28b4bb853e68878689f8b476fd56e0691 |
|
MD5 | 5638d5142f004b1d12f9f476ae4b2a04 |
|
BLAKE2b-256 | 6ea810c1b3f215d83f1336fc5f2ee047b07add1192c69468db6e55e204679114 |
Hashes for pycryptodome-3.13.0-cp27-cp27mu-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72de8c4d71e6b11d54528bb924447fa4fdabcbb3d76cc0e7f61d3b6075def6b3 |
|
MD5 | 995b0d1943a2b84b2dfc5945fccec237 |
|
BLAKE2b-256 | 1451e2780bb15bc594869b127820617dd759875b7e4a121809adebdb55440113 |
Hashes for pycryptodome-3.13.0-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88d6d54e83cf9bbd665ce1e7b9079983ee2d97a05f42e0569ff00a70f1dd8b1e |
|
MD5 | 365e198a33756fb799a83e03e8a9ffbf |
|
BLAKE2b-256 | 74211f075fc0ae7cba9ece37d77d271c1ccabd676e371289fa76e37ff82e7878 |
Hashes for pycryptodome-3.13.0-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5457e44d3f26d9946091e92b28f3e970a56538b96c87b4b155a84e32a40b7b5 |
|
MD5 | 98a66442515526ff920ee5630d5fc251 |
|
BLAKE2b-256 | 4582353d45d0ea6bd6bb601541d733b1c613e2858fee0538e1be07d6dacebab2 |
Hashes for pycryptodome-3.13.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c8e0e6c5e982699801b20fa74f43c19aa080d2b53a39f3c132d35958e153bd4 |
|
MD5 | a7f9b7e6790653584d5fbf7e74c2f0de |
|
BLAKE2b-256 | 8d91d65d547c30cb430082dccc4ed9fed273effaeb320652a6c3c69470450bae |
Hashes for pycryptodome-3.13.0-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec02d9199af4b1ccfe1f9c587691a07a1fa39d949d2c1dc69d079ab9af8212f |
|
MD5 | dbe32b2434a1bbb6ca8696cc246c3d40 |
|
BLAKE2b-256 | 5434f623b1647de29ccc7e618dc1f036f66745e615d7068ef88e75025ac19b45 |
Hashes for pycryptodome-3.13.0-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b3478a187d897f003b2aa1793bcc59463e8d57a42e2aafbcbbe9cd47ec46863 |
|
MD5 | dc077bd6886380e7b5878647348019d3 |
|
BLAKE2b-256 | ba468eab6e56db328f099e069b7deaeba8de64560ebc9d97caf7b188b10f9976 |
Hashes for pycryptodome-3.13.0-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 681ac47c538c64305d710eaed2bb49532f62b3f4c93aa7c423c520df981392e5 |
|
MD5 | 7a301463fadb4e49d2f0e49de0571eda |
|
BLAKE2b-256 | 41fe5a96313a18b6e1ca6b91f6fcf3d51b1c3f9dc2dbb7632b2f5dff3a289f5f |
Hashes for pycryptodome-3.13.0-cp27-cp27m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 702446a012fd9337b9327d168bb0c7dc714eb93ad361f6f61af9ca8305a301f1 |
|
MD5 | 55ad2d2633e01697e4e57353f651f123 |
|
BLAKE2b-256 | 8b7ad50e40615c2d9a5514095f2c5077c499b9ed34d9d085794e50ebb07cd54e |
Hashes for pycryptodome-3.13.0-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7aad304575d075faf2806977b726b67da7ba294adc97d878f92a062e357a56a |
|
MD5 | 0172dca1a105e58a3fbc6f534d5740fa |
|
BLAKE2b-256 | 0d48e7d4d0250598d505cb41db628efc25051b03bbaf17fa51abed46e7ff6104 |
Hashes for pycryptodome-3.13.0-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ea70f6c3f6566159e3798e4593a4a8016994a0080ac29a45200615b45091a1b |
|
MD5 | d1626d41abbc3da8ec14701fa0b79d2f |
|
BLAKE2b-256 | 82ce06a77430c64d0dc9ccef7c913770d1e801b31a6e28fde77e9fce935d4060 |
Hashes for pycryptodome-3.13.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f1b594d0cf35bd12ec4244df1155a7f565bf6e6245976ac36174c1564688c90 |
|
MD5 | d43b64f8e16203ee020dba952305b396 |
|
BLAKE2b-256 | 41945df6f829214e5a57b557fd13ec3ec39e45503df1af1eeaa9980606baa690 |
Hashes for pycryptodome-3.13.0-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fb7a6f222072412f320b9e48d3ce981920efbfce37b06d028ec9bd94093b37f |
|
MD5 | 569c7d9c5c0ac0bb09e5bca45e48b412 |
|
BLAKE2b-256 | 36541bf50561baa94a60f43096f7a139724fc4bf7be8d42bd9730a1e9e78c2fc |
Hashes for pycryptodome-3.13.0-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e468724173df02f9d83f3fea830bf0d04aa291b5add22b4a78e01c97aab04873 |
|
MD5 | 00f5aa5caad648160c470c69d40d3d10 |
|
BLAKE2b-256 | 6f19889b6b72346efc81c9227dc4da043cd43cc5d16b1af9d5b1cceacabea65b |