123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- .. image:: https://travis-ci.org/Legrandin/pycryptodome.svg?branch=master
- :target: https://travis-ci.org/Legrandin/pycryptodome
- .. image:: https://ci.appveyor.com/api/projects/status/mbxyqdodw9ylfib9/branch/master?svg=true
- :target: https://ci.appveyor.com/project/Legrandin/pycryptodome
- PyCryptodome
- ============
- 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.
- The installation procedure depends on the package you want the library to be in.
- PyCryptodome can be used as:
- #. **an almost drop-in replacement for the old PyCrypto library**.
- You install it with::
- pip install pycryptodome
-
- In this case, all modules are installed under the ``Crypto`` package.
-
- One must avoid having both PyCrypto and PyCryptodome installed
- at the same time, as they will interfere with each other.
- This option is therefore recommended only when you are sure that
- the whole application is deployed in a ``virtualenv``.
- #. **a library independent of the old PyCrypto**.
- You install it with::
- pip install pycryptodomex
-
- In this case, all modules are installed under the ``Cryptodome`` package.
- PyCrypto and PyCryptodome can coexist.
- For faster public key operations in Unix, you should install `GMP`_ in your system.
- PyCryptodome is a fork of PyCrypto. It brings the following enhancements
- with respect to the last official version of PyCrypto (2.6.1):
- * 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), truncated SHA-512 and BLAKE2 hash algorithms
- * Salsa20 and ChaCha20/XChaCha20 stream ciphers
- * Poly1305 MAC
- * ChaCha20-Poly1305 and XChaCha20-Poly1305 authenticated ciphers
- * scrypt, bcrypt and HKDF derivation functions
- * 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`_.
- .. _`homepage`: https://www.pycryptodome.org
- .. _`GMP`: https://gmplib.org
- .. _GitHub: https://github.com/Legrandin/pycryptodome
|