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.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ff9d4a06bc40211eee05cd88436740d698a01233f4aaff9eb70d8a90e578966 |
|
MD5 | 33872e465909e7e22d18238a9da7bc7b |
|
BLAKE2b-256 | 7b2a13076625f270141787acedc060d06ff9eb26c9e2e4f2973a635636ab9a48 |
Hashes for pycryptodomex-3.9.6-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5236f2171b21e704d1854fd809a7228eb22e29c894af31459e41986e6a53f87 |
|
MD5 | 9916cb884da4d19c06ab6f1a4e50dde6 |
|
BLAKE2b-256 | 863b67488e86b78b9ccd065a7bd35e5b998446db4bfdfc64686988fff92add61 |
Hashes for pycryptodomex-3.9.6-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea7b48ce8dbbc86ebadcfe56ebc10d413bdd12c9a5ff0b9147a41993f12b80b3 |
|
MD5 | 6794f11f3f30f71663b1a99dd031476b |
|
BLAKE2b-256 | bc981b4cf9be5733ee0749a9894fe81df4cf4ad9a267194110c0887301a002a7 |
Hashes for pycryptodomex-3.9.6-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 466e36ba74a7e725625e717fad3f36e0b9293c247b7d0439c66528026ef2834f |
|
MD5 | 1de56bfa99da85b3abf69f1e4fed7a4a |
|
BLAKE2b-256 | 1ea79d1749cbe7c49d2cb93e44afdc8794526d96aec888e3e74ca84f97dd223a |
Hashes for pycryptodomex-3.9.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27736fa02a2d3502e1ca4b150457e56ce3b98f132462f540073498884e5f8975 |
|
MD5 | c66a5193baaa90074c4ccc56b7730eff |
|
BLAKE2b-256 | adef97affbf7ea653cfe8e3382421e06f6ee531e941bae7b3776141da02ae991 |
Hashes for pycryptodomex-3.9.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04646e40ef5788bad6d415e52862ffcdf2ac2d888ba4a5c82d5cb44607a042f7 |
|
MD5 | 4bb9233165ff44cb15b5c018c018b51d |
|
BLAKE2b-256 | af1508fab8cc976428694f08ae2f4dad6ca93867bcddc8c9df29fa74ecaa8d64 |
Hashes for pycryptodomex-3.9.6-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7babb64484080057a24c74a82dbf7997904b1710b74caf62e261610f989b437 |
|
MD5 | 3c1159ede39c8d48d39584e8e050fb0a |
|
BLAKE2b-256 | 52114d3b667b14ac1cf10ecfd44019fa939ba0ff7d5cb81d0c6145ff89c7245d |
Hashes for pycryptodomex-3.9.6-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17ad1ebaa00806305d34550fe5d3c776e38a27b8a2678dfb7871ef0209d64e46 |
|
MD5 | e7d9027b7326803a74471b44f17c6b25 |
|
BLAKE2b-256 | cea3b72444480e4c719cdd9d66122f037bd5a67abd6c2ca38392bceec9f63738 |
Hashes for pycryptodomex-3.9.6-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51be76756abfc1ddc97e1e2e3c38f4e62fb940161162368308ea9e5919e86c34 |
|
MD5 | a74afed2197c530ce2bc708ccc8922a0 |
|
BLAKE2b-256 | 703c7510f74018e1d2ecd701bdcdc81646ad8d9113b9c3d9556a7ada8078af1c |
Hashes for pycryptodomex-3.9.6-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f545f776e45f74c41329e4020463fdd4d0cd0a7501bdf9e50251dafe7bd959a9 |
|
MD5 | 4a718f3108bc40678db599473ab43caf |
|
BLAKE2b-256 | 992fc13fb6a0c4de4bbaaf4b9dbc17e50eb31ec16712a391b85f05fec8c45e01 |
Hashes for pycryptodomex-3.9.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f77360b23a21db32a4c35dacffac33dc30ac6a5a77162a34e99ab11ab631516 |
|
MD5 | ace56768944ca7cd2b09650a235c7c23 |
|
BLAKE2b-256 | fe92a9bac5e5532288bd960d8e0fc75ddf571d5091951f923f101ecfca385da0 |
Hashes for pycryptodomex-3.9.6-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8ea72adde0d010f89abece5f024b1be95a5c52472e9a57b3ac7d59aee3c8238 |
|
MD5 | 45f116b037e89d38b5148b86572a42c5 |
|
BLAKE2b-256 | e733607c213bd668dc2e3ae813a166f6a8f585a115fcbaa1f5e281f9e3e12dd9 |
Hashes for pycryptodomex-3.9.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be838abc8557a21a60d453c5a4e64c738966b8a0b7d7f8f97eb8bb44041ca452 |
|
MD5 | 114444f8ebe84df9eb20073d8ba0101e |
|
BLAKE2b-256 | 855697693da7f3f44ae8908a3ac80108d46db7ee5b62ebd533a90fae441405e8 |
Hashes for pycryptodomex-3.9.6-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfa99692d3c8f994c5850cc8a894cba001abd76d34069a8bfaad173dd46387d6 |
|
MD5 | 36b84553e3745ba660afeda419954d3b |
|
BLAKE2b-256 | 7f823efd3b1f230ee3bfbf08c7cf0f60701abd61e5a2bc48be6186aad532db1f |
Hashes for pycryptodomex-3.9.6-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f667ac7ae29c19530f199854635f1a97e73d0bfd24163e0db6bdba7dba04eb9f |
|
MD5 | 47cb3c042a68ea8f8f615a32b0a39720 |
|
BLAKE2b-256 | d1ec1be341e257505c469f07d14cb6125a47872e558ac6a5aa5d145207b09bc9 |
Hashes for pycryptodomex-3.9.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e380448f1e39736f6230ec284cd6d771956ad802d6ce5bc56947a2481080cac1 |
|
MD5 | bfa6e4bde160b787e8f7a2c92bf33639 |
|
BLAKE2b-256 | 0030a5ecbee6006ba57b3e35381349d12014b0a6bdbaf2fdc47790bd6eb6a756 |
Hashes for pycryptodomex-3.9.6-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5002388178845683c330a02f4faeddfe7cd477b87824987cca4718fa0c4f2085 |
|
MD5 | c145fdf0a5bfa990e927330640739295 |
|
BLAKE2b-256 | c23a2541c4f55045c92edac5a5466f9fe7681b603940d7ac06bc76f81f019393 |
Hashes for pycryptodomex-3.9.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 544628ae67d61c31c28a60e621dadd738b303c5266492355d5ebdb6e7dd1e78f |
|
MD5 | 5df0130d157510d9e07448c885aefae7 |
|
BLAKE2b-256 | c705465398ac7f196e447fd5ed54d45191af8436010d1306ca3c65cffae081ba |
Hashes for pycryptodomex-3.9.6-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 918bc5a0170fe8ed7b72f202245b34f84a1997f5ca1520b9c7db71126e5acd62 |
|
MD5 | 54ee9f7014550954f45238be4501a3d3 |
|
BLAKE2b-256 | 512e9c40e781c6f5e9a99b5afb0e1c2616e1972dfe0f7fa52e98bb02ae46f6e5 |
Hashes for pycryptodomex-3.9.6-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b350f9ad09b692aed57e669fc3f8cf918557fae9f0229c6ce9286a6fe8c1b60f |
|
MD5 | 11bc620f64a4ff61e5cf622b86f4bb1f |
|
BLAKE2b-256 | c1e438d60917d93c544b45cc7f7867b37b6111f2113eb9ba23854e4e89485c86 |
Hashes for pycryptodomex-3.9.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e15f39fcfb949cfd5536cc9647daba942b1a99b67e4d7211e3bdbcedbc2f823c |
|
MD5 | 5a10cb580bd8f76ccd40da62c920600e |
|
BLAKE2b-256 | c8ce24e7d7eeee753197a2d82187c98bc59e5f2e0692ca0f44619e917b834ade |
Hashes for pycryptodomex-3.9.6-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c96b7762b601dc8a58d7712235c3c152868116f58a7ffa40dcd1c6f6cd97405e |
|
MD5 | 7853fbebb5e180a3d7002d15a686bead |
|
BLAKE2b-256 | a8d3e418020cf701f7c3aacf81bf9491aefed2719c7eb74c420859173cc050ca |
Hashes for pycryptodomex-3.9.6-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38050b3fd86c74c6c79e40bbe824bec6431c3e4e36f6080ed544673ba2dc133a |
|
MD5 | e8efe3a7eeca1f0c1bcee88117c145b9 |
|
BLAKE2b-256 | 16cd1416d457f3beb1e8d7b838a78f9378a8915703ccbeae42fd6aa4faa3781f |
Hashes for pycryptodomex-3.9.6-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b9306b360bddbc8e098b16eab7adacf49389d212db9c3739588ab840a1ca868 |
|
MD5 | a004c53c01e061156c9e55b5b42d7c83 |
|
BLAKE2b-256 | c6c43eaac8a3ac9023eb7780c9b7885a3caa5173059f5f821dd27832e2ba2ff8 |
Hashes for pycryptodomex-3.9.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 132f1e5fa84921f25695a313a6d4988847dfaee7fb1fd0d1fbe03ef678836f58 |
|
MD5 | ddd925c98e4bc4184a38c344b5baaaa4 |
|
BLAKE2b-256 | 0ec3336a4478dde5832946c9e14ba47bbc52dda20b586218a716a5e4415393a1 |
Hashes for pycryptodomex-3.9.6-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d67b6e0bae0777a2c6c83275fbd7cbf53cd5f23c2028f908b0f7d996466e5b15 |
|
MD5 | 2e959856d9d7385f22d45a55161806fc |
|
BLAKE2b-256 | 225fa70242686f78a08ceb68a5825ab6f7c889c6f9fe6f092fd576b0369dc25f |
Hashes for pycryptodomex-3.9.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f39f5b58d8fe348ed604bb44a89ca93b26130c275db2b249f718f1538cb70500 |
|
MD5 | 82acd2a7c25fcf68c29bfc4afb76a6a4 |
|
BLAKE2b-256 | 1b26070a388e0c8018fbdf53d0293da2b022bc05a715304abc137d1327d23bd3 |
Hashes for pycryptodomex-3.9.6-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 718329c6ca60260f1c27b8392e372dd51e4e691f7dcb88adc53eb3b76af6363c |
|
MD5 | 808a7fff07e09b98e31fb1d0e4973dbd |
|
BLAKE2b-256 | bcfc0a5e64f96bc349ebd98d4f7a727af61f5ab28afb0721cb8f64ea12256515 |
Hashes for pycryptodomex-3.9.6-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a979d2c7bcc67282b7ec2600db384c63d37d74e250edb99168483605a380bf62 |
|
MD5 | 85f94f6221f263441be52c20ca025d43 |
|
BLAKE2b-256 | db1a833ca149bc541320bfccfb822e421c8d5447e8b08895b33358c7fb680bc2 |