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.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab497d4e7361511ede562ed3cd4528f46c005781bc23b1b943612d27bfb078c3 |
|
MD5 | 1e84b05f64247c2e34bab762897839f7 |
|
BLAKE2b-256 | b3bc2c19fecd53d6d4de865e663959f5362c9d3814372825343e7d2b023a3e87 |
Hashes for pycryptodomex-3.6.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4f69af1f5b46255ec7b8116a853879a55e8e6b595a73c39f14ca430c410c469 |
|
MD5 | 5318d8649bc30ee887fb0c403787b48f |
|
BLAKE2b-256 | e2db4bdbcdc7b1ad947546643e93a342e3cfa648ad5573bb1fc4a67ecd2921fa |
Hashes for pycryptodomex-3.6.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1869d7735f445bbf1681afa2acce10ad829857cfb7a4a7b702e484f222021892 |
|
MD5 | 35a44659681eb52766537c6dbdbb43a7 |
|
BLAKE2b-256 | b11ac3f07c05556de1bf0469b92d797708272a7e06ea92be5882e32e9089cee7 |
Hashes for pycryptodomex-3.6.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24e054190d2b11ad3b8517d186c0b3df6f902a5f5a91be8e4bb6a3fcdc65b2cf |
|
MD5 | 5233ba217529bd117e52978a7c4f3f13 |
|
BLAKE2b-256 | b71ff227f7c886b55c90a2dfcc4ce95a22b607eb5d24f7c9950f2e53cff7ea02 |
Hashes for pycryptodomex-3.6.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26967d31fabb0d80cb2b254a7c0f55f8dec9931e8676891edd24aa5aaeb0d021 |
|
MD5 | 94bc766835689a9acf74b6dac06cb2d0 |
|
BLAKE2b-256 | 118d05bcf8e039e989c0dd4a645a66e5fcda873718b2ff8350c7d77c3b1f2a20 |
Hashes for pycryptodomex-3.6.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 730bd75d90e16975a112ea79863ce1faa7703d3b54f10d77656e7dadf6be0ef6 |
|
MD5 | 4abe069af9064fb25d9680031fdc49f1 |
|
BLAKE2b-256 | a9ebe5764f5c9df486c8fda21d278c1af1a7bf62991fd9e3c92afdadb2a252ab |
Hashes for pycryptodomex-3.6.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dff0c883d495bf45d18acc74938d1de4d6a08b3345acb9177a46c6997a578c44 |
|
MD5 | af61f416750fe031fee4c6fdd7e2e077 |
|
BLAKE2b-256 | ea9995ecaad433d289a188dcb1c452da696f8a28c53ec26082561a12522b2d4d |
Hashes for pycryptodomex-3.6.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c550e20834b679ed0b7608c345a816f97047d2297aab4f4599f95edee5d16e99 |
|
MD5 | f341743a1b6de68a5e88775650c642c0 |
|
BLAKE2b-256 | c800238d60bb517ac5fc42718ce2e2eb54b211c620f418af82f3281940bc2eaa |
Hashes for pycryptodomex-3.6.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75a300aa86c56e9c19a7b476c397cb22fda3be7af4cf2f105990fdd94c52f486 |
|
MD5 | b47ea3e048a167952ec028aa5bfd8fc7 |
|
BLAKE2b-256 | 708924b133df28e31f7ab2620a614e6fd8a5cbb251528d5305a99f2bc9a31d9e |
Hashes for pycryptodomex-3.6.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43d6eb014aba7be354f3e8fe2693fe96446f6791da2b9570e8d54d481e3ab224 |
|
MD5 | 1ee2d7897ec85d894f3e82be0887d6bc |
|
BLAKE2b-256 | cf0bfa324fc15ab9fe1f63f916ba01ee0f74339ab9fd7b90ee86fa2b212dcd6f |
Hashes for pycryptodomex-3.6.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc797712add76cd658110585481c380833637b68df1404190777ba715a81c9b9 |
|
MD5 | 09d7885e0d9794d3fa8a137c7ae6fdeb |
|
BLAKE2b-256 | d24f03b6ced6cf3bc2890fe78d3de654ebbe7e791711ebb13dd83e132f792bd5 |
Hashes for pycryptodomex-3.6.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4643647f5656855975b2aaf70fe3aa1e0c1558f8d1b5de0c9a8ccac65114c57 |
|
MD5 | cba5e395e1c066f4d7019e3c5229959c |
|
BLAKE2b-256 | 443b05d5532b44d256740b9fbae44399cf3c186d0a2189f2ef1f3719436ab99d |
Hashes for pycryptodomex-3.6.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c6f67005c6e421f02fd7fe9d95876094307b31628d728adc6c2e038e2ed9c09 |
|
MD5 | dc1abd7a9b35f67595bbbcf4d436b6dd |
|
BLAKE2b-256 | b027f703ce8e643908908a6aa4fe5460c081d266eb3c08f76c9ff50c6bc65a23 |
Hashes for pycryptodomex-3.6.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a341b57bb5844d53b8f632f79277cd534762f502fb73bff5dc1a2f615ff91ed |
|
MD5 | 327b863ed7046175d9507cbd905771b1 |
|
BLAKE2b-256 | 302aacdba30089714dc96b55e63c8e92dbdd3694bc504429ff72f61696e9e799 |
Hashes for pycryptodomex-3.6.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59721f2853df9cf2265304d3b6d6d8cebe3a86b1fddc00f2bfbf18eb2a48fb78 |
|
MD5 | e009a6878ce0a8f62fd0d8c68f0ba07a |
|
BLAKE2b-256 | 309ec96781905b10f6c65e83e106e8b6d8b0dce2b771a143936696b68ddb0b70 |
Hashes for pycryptodomex-3.6.1-cp33-cp33m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93582ea5bc3e8f95cb36d9dd752c01452085b54b396e3ed775ac1793b8dc486a |
|
MD5 | c311312c957dc9b42d9ea664c3711c1b |
|
BLAKE2b-256 | 664cd633cf5f21245be5fca3b578e0bd2b1da8920528d92ec5a15cd5134adac2 |
Hashes for pycryptodomex-3.6.1-cp33-cp33m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8467982d26bfb90089f50c3c5d9ed541b7fe9f9df20803fede70d5046cd4ff1 |
|
MD5 | ce99e5590c951d4890b00551a53ec5bf |
|
BLAKE2b-256 | 37d31955122c00ed5092e77a0028887904bd4929781f5ffcef8e0dcd80400e4d |
Hashes for pycryptodomex-3.6.1-cp33-cp33m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f65f21d2b616c30ad4ba801504343eb768fd0a2894c5f587e784201320556543 |
|
MD5 | 4f2db8008474781acaa36e9795df3ae2 |
|
BLAKE2b-256 | b0c290a30e10ea2af8a294947c53166db3ab775bc6297f5a5a125e6a25dac87b |
Hashes for pycryptodomex-3.6.1-cp33-cp33m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8528a958b746c4da767bfba5ac370250dcb741f4c69e55873bd6efe89ac07291 |
|
MD5 | 11a4d6f7c395b1d90126e211a8b52e30 |
|
BLAKE2b-256 | 7e034bf5bd56e2022f56835ffb5cb97ba2bdf45979a8fe32da5620b45d4a8fc9 |
Hashes for pycryptodomex-3.6.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f61d0d83e9dd974849f9b0826ec20f49dbd9ed233fd90bf2592be1337231418e |
|
MD5 | ff3218c3a1a33e8c2249335386babede |
|
BLAKE2b-256 | c21f961a70a1b7ac201ec1e51bb1614ea270ea321b2c2971604dfbc3682b7d77 |
Hashes for pycryptodomex-3.6.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63a77a1b27d12ed1c42f4e539d9dbe588a88b70ec64b55271cdf1f56c1223bd6 |
|
MD5 | 12f33c92588dd47ea2025be1676dc49c |
|
BLAKE2b-256 | 1da82dfec62feeabc58a3d6462414853c8bfe3220be52294540ef33d01248940 |
Hashes for pycryptodomex-3.6.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a65889424bf10a884ff031e7f3fd12273dd5b420ee08ca8fcfd431a2f6cbabc1 |
|
MD5 | 6ea9d14afe253d8623c547de26aba033 |
|
BLAKE2b-256 | 1bca102de1548d2a5c5b16a1af11791fcf423e6fb2f449aaae45bc72408e83e5 |
Hashes for pycryptodomex-3.6.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb05caf3f6cf41d964c01e08dfaddfe48086c7b3e96708d50647f0a29ff33f56 |
|
MD5 | 28074d11d7344aadb8c6731010fe32b9 |
|
BLAKE2b-256 | 259f15f948eab6f98c3815c22459ac163fcf7e5fcc1475ae1d4a90d83fa009bd |
Hashes for pycryptodomex-3.6.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d04640386c55b9f44015747496c3b6582360b5b3b4e42f9ce3fc7c6840f80d0 |
|
MD5 | a69fafe5f1679d0b3a1a73855d8f187a |
|
BLAKE2b-256 | 89ee008da4f2b44388a955b065c1225462616e7e0c7157a9c88199a8d99ef217 |
Hashes for pycryptodomex-3.6.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c271577f4f8c5cced55a60f4504b34545121c14facb8fc357f89c24089c81fc |
|
MD5 | cb9c4af593fb9d60e9b4b4a3f785b6c5 |
|
BLAKE2b-256 | 46d2747e2144ee08bc82f6cd63672fde971898cdff421e87623d48f70a718ea3 |
Hashes for pycryptodomex-3.6.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94e0105ad8d82d3bf5a032c92fc03b01e3bc9ea40b58308c2da42f8cf8c16c47 |
|
MD5 | fb05b271c216747aead9684a725cd23f |
|
BLAKE2b-256 | 4828dc427592ec7c6dccca05df0bbc082589fd03ac08a759f899631eeed1efc7 |