• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H09-Feb-2021-205171

Doc/H03-May-2022-7,4075,628

lib/H09-Feb-2021-51,43635,390

src/H09-Feb-2021-49,06941,798

AUTHORS.rstH A D09-Feb-2021735 5049

Changelog.rstH A D09-Feb-202125.1 KiB795596

FuturePlans.rstH A D09-Feb-2021944 3028

INSTALL.rstH A D09-Feb-202110.9 KiB293209

LICENSE.rstH A D09-Feb-20213.2 KiB7054

MANIFEST.inH A D09-Feb-2021366 1312

PKG-INFOH A D09-Feb-20213.5 KiB8268

README.rstH A D09-Feb-20212.9 KiB7554

compiler_opt.pyH A D09-Feb-202112.2 KiB424299

pct-speedtest.pyH A D09-Feb-202118 KiB491345

setup.cfgH A D09-Feb-2021186 1510

setup.pyH A D09-Feb-202116.9 KiB519404

README.rst

1.. image:: https://github.com/Legrandin/pycryptodome/workflows/Integration%20test/badge.svg?branch=master
2   :target: https://github.com/Legrandin/pycryptodome/actions
3
4PyCryptodome
5============
6
7PyCryptodome is a self-contained Python package of low-level
8cryptographic primitives.
9
10It supports Python 2.7, Python 3.4 and newer, and PyPy.
11
12The installation procedure depends on the package you want the library to be in.
13PyCryptodome can be used as:
14
15#. **an almost drop-in replacement for the old PyCrypto library**.
16   You install it with::
17
18       pip install pycryptodome
19
20   In this case, all modules are installed under the ``Crypto`` package.
21
22   One must avoid having both PyCrypto and PyCryptodome installed
23   at the same time, as they will interfere with each other.
24
25   This option is therefore recommended only when you are sure that
26   the whole application is deployed in a ``virtualenv``.
27
28#. **a library independent of the old PyCrypto**.
29   You install it with::
30
31       pip install pycryptodomex
32
33   In this case, all modules are installed under the ``Cryptodome`` package.
34   PyCrypto and PyCryptodome can coexist.
35
36For faster public key operations in Unix, you should install `GMP`_ in your system.
37
38PyCryptodome is a fork of PyCrypto. It brings the following enhancements
39with respect to the last official version of PyCrypto (2.6.1):
40
41* Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
42* Accelerated AES on Intel platforms via AES-NI
43* First class support for PyPy
44* Elliptic curves cryptography (NIST P-256, P-384 and P-521 curves only)
45* Better and more compact API (`nonce` and `iv` attributes for ciphers,
46  automatic generation of random nonces and IVs, simplified CTR cipher mode,
47  and more)
48* SHA-3 (including SHAKE XOFs), truncated SHA-512 and BLAKE2 hash algorithms
49* Salsa20 and ChaCha20/XChaCha20 stream ciphers
50* Poly1305 MAC
51* ChaCha20-Poly1305 and XChaCha20-Poly1305 authenticated ciphers
52* scrypt, bcrypt and HKDF derivation functions
53* Deterministic (EC)DSA
54* Password-protected PKCS#8 key containers
55* Shamir's Secret Sharing scheme
56* Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace)
57* Simplified install process, including better support for Windows
58* Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
59* Major clean ups and simplification of the code base
60
61PyCryptodome is not a wrapper to a separate C library like *OpenSSL*.
62To the largest possible extent, algorithms are implemented in pure Python.
63Only the pieces that are extremely critical to performance (e.g. block ciphers)
64are implemented as C extensions.
65
66For more information, see the `homepage`_.
67
68For security issues, please send an email to security@pycryptodome.org.
69
70All the code can be downloaded from `GitHub`_.
71
72.. _`homepage`: https://www.pycryptodome.org
73.. _`GMP`: https://gmplib.org
74.. _GitHub: https://github.com/Legrandin/pycryptodome
75