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 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.14.1-pp36-pypy36_pp73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 530756d2faa40af4c1f74123e1d889bd07feae45bac2fd32f259a35f7aa74151 |
|
MD5 | dca8c3834695706bae131bc44ede9738 |
|
BLAKE2b-256 | e15fe5732808bbadaf61baed7821df20937c512bdf7615dcd2dd2c24b65abed7 |
Hashes for pycryptodomex-3.14.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4d8977ccda886d88dc3ca789de2f1adc714df912ff3934b3d0a3f3d777deafb |
|
MD5 | 804e8c4e4f82b517f6741f6713c43f99 |
|
BLAKE2b-256 | a57c7b1b515edc4ab0ad0b91d41a4b34685d72046d51e478fcee1f21342a7736 |
Hashes for pycryptodomex-3.14.1-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e36c7e3b5382cd5669cf199c4a04a0279a43b2a3bdd77627e9b89778ac9ec08c |
|
MD5 | 9524b3cbbca777922f019227984400bd |
|
BLAKE2b-256 | 24a30157c451f79a1eb807de95caa7531990b428c4154401d2f5c76dff98cb59 |
Hashes for pycryptodomex-3.14.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b276cc4deb4a80f9dfd47a41ebb464b1fe91efd8b1b8620cf5ccf8b824b850d6 |
|
MD5 | 646c9b38c3d77865c004bb18c3c15360 |
|
BLAKE2b-256 | f10cbc9179ecfe291f9f0fe5afdf486b611532f8b19f494e88ed71792b656b9d |
Hashes for pycryptodomex-3.14.1-pp27-pypy_73-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d0db8df9ffae36f416897ad184608d9d7a8c2b46c4612c6bc759b26c073f750 |
|
MD5 | 348adfc06a4b6883a69a6a663b7b782d |
|
BLAKE2b-256 | 7c631217ae902d52e223322991e0baadfba46ddeeccd90d0811713a1a913da83 |
Hashes for pycryptodomex-3.14.1-pp27-pypy_73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8524b8bc89470cec7ac51734907818d3620fb1637f8f8b542d650ebec42a126 |
|
MD5 | 9bc70baaf524895c99376509303c6455 |
|
BLAKE2b-256 | bfdef505ce3d5dc4b128653afcff70b37c5c23ac3a240ea1170f153c4fe9eef5 |
Hashes for pycryptodomex-3.14.1-pp27-pypy_73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aebecde2adc4a6847094d3bd6a8a9538ef3438a5ea84ac1983fcb167db614461 |
|
MD5 | be7e29bbba3b96925de53bb28689b89e |
|
BLAKE2b-256 | 5eb19d3ad3c315b24f2f984cd4cd23a91b7fe04bbf6ef04ab6b7f8c66988a19b |
Hashes for pycryptodomex-3.14.1-pp27-pypy_73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 797a36bd1f69df9e2798e33edb4bd04e5a30478efc08f9428c087f17f65a7045 |
|
MD5 | daa7fcdc01a6bbbfdea69b2bbdc08f7e |
|
BLAKE2b-256 | 65072ec32efba1b885af4f44494ec76ddcf8b722605768bfdcd0f00e69dd2d8f |
Hashes for pycryptodomex-3.14.1-cp35-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5a185ae79f899b01ca49f365bdf15a45d78d9856f09b0de1a41b92afce1a07f |
|
MD5 | 8b9fa3e2dbc8215cf6af27afa8c6f65b |
|
BLAKE2b-256 | 7fae15db18fdb723811e32ca6bd6d73ecaa60c26d5e3693965330f86c94e7319 |
Hashes for pycryptodomex-3.14.1-cp35-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee835def05622e0c8b1435a906491760a43d0c462f065ec9143ec4b8d79f8bff |
|
MD5 | 928b0eb9433a21b1e5d0b063f45392f5 |
|
BLAKE2b-256 | e8dbd944406ebd6c6b6353d8bd13b9cbbb93c6557c729bd5b83a878d9260dbaf |
Hashes for pycryptodomex-3.14.1-cp35-abi3-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ca8e1b4c62038bb2da55451385246f51f412c5f5eabd64812c01766a5989b4a |
|
MD5 | 7c6af8cbfd32cf21cdd169549b5a67b2 |
|
BLAKE2b-256 | 1f7c72a414f99c0d3c52dda0d312fb6a603ace323ed8c4a38c92a10beb03e992 |
Hashes for pycryptodomex-3.14.1-cp35-abi3-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f75009715dcf4a3d680c2338ab19dac5498f8121173a929872950f4fb3a48fbf |
|
MD5 | 3c49bda5712f9515d4583d292d5b74b1 |
|
BLAKE2b-256 | e80883bf2ff51f79206bcd1e335e28ab8c711b7a3d1b0a35327f0cace3515e09 |
Hashes for pycryptodomex-3.14.1-cp35-abi3-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2cce1c82a7845d7e2e8a0956c6b7ed3f1661c9acf18eb120fc71e098ab5c6fe |
|
MD5 | 65d06f8389fa1340fcb99b7bd442ba83 |
|
BLAKE2b-256 | 123123f4f53414cd57006c1ca8b2516b7e31d9001c9bab0cccb2d245b52e8713 |
Hashes for pycryptodomex-3.14.1-cp35-abi3-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4d412eba5679ede84b41dbe48b1bed8f33131ab9db06c238a235334733acc5e |
|
MD5 | 1dbbd2c13f9b84b1133ae530d31e72d2 |
|
BLAKE2b-256 | 9b82e825e7a948453e3a7aa9c6a7e1ec95c3b5ea66fffc17f3ebcedb7b450cd5 |
Hashes for pycryptodomex-3.14.1-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e95a4a6c54d27a84a4624d2af8bb9ee178111604653194ca6880c98dcad92f48 |
|
MD5 | 00dccf7428645f2e283fa3204613e77c |
|
BLAKE2b-256 | 310e0639d958425d36af0429158be59fe36747651eddd3f4f177d4b5cfc7e78f |
Hashes for pycryptodomex-3.14.1-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8085bd0ad2034352eee4d4f3e2da985c2749cb7344b939f4d95ead38c2520859 |
|
MD5 | 2c50ac7a25305b5520f7c0a85aea1fdb |
|
BLAKE2b-256 | 48f67f1915a58db62f92dec26fd5417f9fb8b70218ed817c9273c037da36d2c0 |
Hashes for pycryptodomex-3.14.1-cp27-cp27mu-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2aa887683eee493e015545bd69d3d21ac8d5ad582674ec98f4af84511e353e45 |
|
MD5 | 55f6596587305564d1f86843ffd91c83 |
|
BLAKE2b-256 | ff755f55e4b3c7f0c4dc018c91b57d530c98a9f0d74212308268a46c505de300 |
Hashes for pycryptodomex-3.14.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5dd3ffa663c982d7f1be9eb494a8924f6d40e2e2f7d1d27384cfab1b2ac0662 |
|
MD5 | 6da1ab3061af7c89e375c832f57ce88b |
|
BLAKE2b-256 | 123260e1c0ba50799cd9cde95df735f41f2f391bd13d2ada1e321deceb30bb4e |
Hashes for pycryptodomex-3.14.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77931df40bb5ce5e13f4de2bfc982b2ddc0198971fbd947776c8bb5050896eb2 |
|
MD5 | 2d32a3743f056859e7517912f477ae40 |
|
BLAKE2b-256 | 6c50b42af584f4b6e5bd73a28d8f746e402aca2f9f7b14e5290c37218a4b0c51 |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 298c00ea41a81a491d5b244d295d18369e5aac4b61b77b2de5b249ca61cd6659 |
|
MD5 | d6a20364e3cc97f2a7144fed06269ced |
|
BLAKE2b-256 | 6674fec1a11115d71693b01166eeb6ddf8a4e1317f2c53a94d01b31b4a7e51d9 |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3da13c2535b7aea94cc2a6d1b1b37746814c74b6e80790daddd55ca5c120a489 |
|
MD5 | 693e7bd6a7c89ef933336d7c4aac4680 |
|
BLAKE2b-256 | 9a0f548c1dfc7075191ec9f8015654fa0554ba6c0762d76b3a6ea2e742e3ee8e |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d709572d64825d8d59ea112e11cc7faf6007f294e9951324b7574af4251e4de8 |
|
MD5 | ef8b36398ed1f76ee7ffffd15cd9d2ae |
|
BLAKE2b-256 | 950afe68fc2bc743fe4bf5a1f4286c5b890b3398e13c643cfd2fe64c9a89b668 |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da8db8374295fb532b4b0c467e66800ef17d100e4d5faa2bbbd6df35502da125 |
|
MD5 | d78358567f96cefcf2dce7937b515e9a |
|
BLAKE2b-256 | 244b0258cfd1975720faca912c4cec7edb30d4ff883e4bd406d34db365fed4a5 |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 406ec8cfe0c098fadb18d597dc2ee6de4428d640c0ccafa453f3d9b2e58d29e2 |
|
MD5 | a20c27793b4a3c7c3532f37e18f8b7d3 |
|
BLAKE2b-256 | a3c92818615489bd96f418686b54aa73d82e40693cce544b9ebbef865bbe1ae9 |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8536bc08d130cae6dcba1ea689f2913dfd332d06113904d171f2f56da6228e89 |
|
MD5 | b9cfd1f77a175d0ba8e3c56b9c4922bc |
|
BLAKE2b-256 | dde561c66e4bc46df4430849f52c705fd62f3b83f8980200204c5368d1de7def |
Hashes for pycryptodomex-3.14.1-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca88f2f7020002638276439a01ffbb0355634907d1aa5ca91f3dc0c2e44e8f3b |
|
MD5 | 2dd9277781c32b0795e8d6f4b65716ba |
|
BLAKE2b-256 | d5828c76ace485f7e32c1761245a7cabe3199557695c1716d0f2d43dfa9dd49d |