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.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30975ac3ee7c632eb34a05d2aa0e9933cab9a0746b77d44612a3b61c56ecfa3c |
|
MD5 | 65b4bfe6385b7767271e26dfc821cb43 |
|
BLAKE2b-256 | ef373c0f2674a330bfeac6a7852945225346e42b504e49afea6a490288224e6a |
Hashes for pycryptodomex-3.9.3-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee03dc6124287e27738e5f1d1150031d706f7fb96f1770859cb3cebe64c191ea |
|
MD5 | 89809bf37db840a017d1c33d601507b6 |
|
BLAKE2b-256 | 99eb8e6538be76a7ae073ca973db14824ca5bbcf4a1c55cdf6184d13fc71f21c |
Hashes for pycryptodomex-3.9.3-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbfaf65e610089f37c46e2cb2ff2dbf9a04bbcecd3a2beaa85494094e9987aff |
|
MD5 | bb65f93ea84bce524e9eff328b6e375a |
|
BLAKE2b-256 | b23e53dcd6df6b1c7d81b2c47916996e3ebd5dcb86d83eef730c3be81216f854 |
Hashes for pycryptodomex-3.9.3-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be635b1f9ee9615243dc706c11047015d22312e7425c9009dd6447c229370e1a |
|
MD5 | bd4a3d3302d00124260f22900de28ce1 |
|
BLAKE2b-256 | 117cb27ff8a1619e83c4746399cd35f0939fe18ffad4d62d5d36596ce888cd0d |
Hashes for pycryptodomex-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c462632ff441203fc30f11cab9cf12e2eb00417b4a1ea3c5208e875d81cb160 |
|
MD5 | 629d36fd4d4d449f852f59b5f4ae2ee1 |
|
BLAKE2b-256 | 997ccae843e53bba112a38ea1e091af82cdf63f4dca8fbc09f31a641ebde3c14 |
Hashes for pycryptodomex-3.9.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37f84bef86e935e10a2ccb22f6cd2cebac274dff8867f16f7c2d5da9aa27665d |
|
MD5 | caea63f3e12a2a613ade793c60c9c5de |
|
BLAKE2b-256 | 27fa34f4f106f0ef28e279313e156d1b72d178df3b247199fdb7fe1ac687dbe7 |
Hashes for pycryptodomex-3.9.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3503841cb5185b210876d7ff8f541e2c2ea0915c83f6330be6d7026a34828ca |
|
MD5 | 3a08ab614a4c7ffcf4dc16e43f3f7d3e |
|
BLAKE2b-256 | df2f38656ec8aa525f0c9cfb99d05077f81e932eee9a7a5950a4b54f1c90d063 |
Hashes for pycryptodomex-3.9.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d58f13c8ca6bac3bf0d64e7474725ff55c2d6db60ed03d5b98b81c757bf1f4c |
|
MD5 | 5daf5f77b668334387876e9cc4ea0626 |
|
BLAKE2b-256 | b4ae1ca0afa71f29a1af8d818bf19fd71aa2eb9ad070278bec356449563a3347 |
Hashes for pycryptodomex-3.9.3-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b80f06556552a515ff9f1052ea41895e34745558a5ddbab46e300ba43384a35 |
|
MD5 | 972f1e22e6401fc5195773abc57ddb5e |
|
BLAKE2b-256 | b695a31de215afa5179d6f9b5faef56fe51d863a4d366c01710083caf1a05e76 |
Hashes for pycryptodomex-3.9.3-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d8b071a159e9b46734cbb802282719a0d0d0e40523c8648fab0b6739f98a882 |
|
MD5 | 26bae4b02e99fdbe90d0d65a6f08372a |
|
BLAKE2b-256 | 51b0a469134ba8478eaea4d7696dba1f96b83e64a462c8c71e9a8b8b012bd06b |
Hashes for pycryptodomex-3.9.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a06a1f927d02c1fea1f7656e32bf36149d0f6cab750313a03a085e43632163e8 |
|
MD5 | acce25343fec203a3823bb98d41e6fb8 |
|
BLAKE2b-256 | b9403e899a0262968aea7d8fc756789f7d3efb0ba3ab9e59161818de890c0773 |
Hashes for pycryptodomex-3.9.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ab2251a386c065331115c408c23274e8aea7ddf5452f2e92120b88fa09aba23 |
|
MD5 | a08ca0bd36e3f05a3ba004c92bc03548 |
|
BLAKE2b-256 | 61187babe34afc7add466df162719031ae0f0ec57a9960951f49a842529a4d80 |
Hashes for pycryptodomex-3.9.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d98214b7bc6f9ceb68eb5cdbd4237f23485b4b746e7e582990be492b6c4797b |
|
MD5 | 5debac6ec56578ffcfdb5fec62a1377a |
|
BLAKE2b-256 | bb3ae67eb72812aa9962e15023ef59ad5b57c84b0439991949604b6676fcb955 |
Hashes for pycryptodomex-3.9.3-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f86a6d668d4f918b21452fcf8bb24dc9c135b6564cbd4ff7b954b1d35fe7527 |
|
MD5 | 5e235711229f57ef5d9a8788e20b1f99 |
|
BLAKE2b-256 | 46c5236f12187c0585663f37cfbe45d7fbb4d1c005cb5c232469ce0728514f57 |
Hashes for pycryptodomex-3.9.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8913f185eccb2f270030a0347161d2cd47ef691f12a4b9af9772319e5a6a717b |
|
MD5 | 01bb24765e246aa99285a470020741ff |
|
BLAKE2b-256 | c0c3fd6748d42d77120b4b2cd83d2c60435238af44c05fec23e62b0a045d9dcc |
Hashes for pycryptodomex-3.9.3-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 275e8f0f7fd03ec4b9f7fecfeac3dad8e5a1fe389369efda1e365e8c5795c1ac |
|
MD5 | 74dbe6e37a9520f420b4c435d0b76c73 |
|
BLAKE2b-256 | 95afd31844dc87362f5be67badad752d1e91d00a1049fae1af19fba19b6d3863 |
Hashes for pycryptodomex-3.9.3-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ac49b6ad1e57a0914d8d5e0267e4df5fbdf4e62abdf982bd5493d634cd3a686 |
|
MD5 | b49cc1b677f93de109fcc49f3c805b3d |
|
BLAKE2b-256 | dc6a94c8c1580bfe5578ded8b24fc2d2f4b1a33283c69b8e4fb79aa313767ca1 |
Hashes for pycryptodomex-3.9.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f792b5deca98bee676912d27bc1aba96b614986a9a89df7cf15e95d7bd480768 |
|
MD5 | 03409e96278394c9aa50107135be0353 |
|
BLAKE2b-256 | 5dd167d7e5de07c8f99786663ace4648fbef6ecd990d7fa1cf5fad96165f9613 |
Hashes for pycryptodomex-3.9.3-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b9f81fd0c897c493ff8367cca41b9b93f6c9277990c8c4c2756538ed1aa4a99 |
|
MD5 | d6d423e821019c7792362c1138f1985e |
|
BLAKE2b-256 | 625bc7bc87e7d455b63ce419a2ead8bd28d0bbca3fce9034114537142f974095 |
Hashes for pycryptodomex-3.9.3-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0da48ccd0944a952cbaac623bf0e1139969078551a213c019ca885ed66771539 |
|
MD5 | a4277c386f9d22b4438d992f835343b0 |
|
BLAKE2b-256 | 94b808bf47a6b875eb3b85b726120c31d62ffe786e67f88821b17be37c5ef072 |
Hashes for pycryptodomex-3.9.3-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb5aef32e65d7802e04c78074af1ba8e7a5b4c0482d3a110f236082fadac6859 |
|
MD5 | 2c4858463ee633c523d4e22f7e2357de |
|
BLAKE2b-256 | d7131d0bdd99bc4dcb764655fd7e7bf5f8e6c077e894f27c2a481028ab160523 |
Hashes for pycryptodomex-3.9.3-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1db857b0ac6bac6d4d4758250d548d7146d63cb36c6c50b7481837f02d38ef7 |
|
MD5 | a96cf29a62c29d9286a99365e7901a37 |
|
BLAKE2b-256 | da9a9328e530bc6ab1fe14f0b00d809c267eb17c0f72d6f5985caf7838af545f |
Hashes for pycryptodomex-3.9.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbd9e3ba9437b087b16481d1e34ec4f495ffabb4bee7e2c150b50d28ebe00e44 |
|
MD5 | ee8243618ea0a8b546b83c6fb9e224f0 |
|
BLAKE2b-256 | cd5dd091308cddd3d79002180ef2070771845f2e853b83a5cb31ed1552a058cb |
Hashes for pycryptodomex-3.9.3-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e413457859d3c3e4a4263ef24ccaefe4107b3e3e219c4fb87215cfc34ff8dba0 |
|
MD5 | a60b1476be0f5501812a2666afa427d3 |
|
BLAKE2b-256 | 8abc2d2307105f75ee9f77b975497cdb5bd473f8faa2d0720575a19259a8a750 |
Hashes for pycryptodomex-3.9.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adb6ca0aee7fd2807628d1cb77fc9be8a82f493240e2349da06419221b1f6b19 |
|
MD5 | c25b1d20484fa7870585182320eca3d8 |
|
BLAKE2b-256 | 40bac68ac43fbfb925a4744334f3fe190c186e426478cf425216c3b09e35cca7 |
Hashes for pycryptodomex-3.9.3-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9537841af488a4b83977aeebfd4aebe011b7d1d19e9d45ad32a1f8dfca7eec8 |
|
MD5 | 37f8e53146165837e14b90cd2d1d83b1 |
|
BLAKE2b-256 | 10f1815a8c3c2ee662993fa2952d52baf15f6d0f8b7700d05f365e649f2c60e6 |
Hashes for pycryptodomex-3.9.3-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b90ecc35567d77e7dc9f70817826f077c9dbb37abdd16e2c2d57887c21053e53 |
|
MD5 | d33489c9cf38dfa83a17ca02625fe21e |
|
BLAKE2b-256 | 8b91498d1a86aba70042381202ef257cb3f95d4211be02ee25d5015ec1faa86b |
Hashes for pycryptodomex-3.9.3-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d278909c7fabd303d87268eeda7350641f094792ecd023965f960ae6d2d3da |
|
MD5 | adc372b0451512775b4e716b4c0ea3c9 |
|
BLAKE2b-256 | 2fa2b857a866cc40d3d76f39ecb870f04fb68e8c2025cdc82740bf84e3348f3a |
Hashes for pycryptodomex-3.9.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba18a7dfef6d89605ca76f077d033143fab8f2d6948620d09337567402f1c0c4 |
|
MD5 | 8288a98e22094a2cdeb369e6e94be37e |
|
BLAKE2b-256 | fa24438bd0e187950d401001977baba29638e7c7ddaacf2fc2771b320729b058 |
Hashes for pycryptodomex-3.9.3-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d3f7357789171a0f05e3b1bac782989619043693e4200518c678245856ca7c |
|
MD5 | efef48cba1ace0de7930312643b09a75 |
|
BLAKE2b-256 | 3173ec82e3d8b74e4922a1f5c8c55b52cbcba94c56d495a52441c441b4a4c372 |
Hashes for pycryptodomex-3.9.3-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f84e6e66af8805703b5f4d1243747accf519cba0223d598b58e85edbec8583d7 |
|
MD5 | 2a4cf4e97d436d2f26054f52d884a90a |
|
BLAKE2b-256 | 372239636dc07275feb69847ff05a7b867c95356338014df9cb104ceef2e52cd |