DESCRIPTION.rst 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. PyCryptodome
  2. ============
  3. PyCryptodome is a self-contained Python package of low-level
  4. cryptographic primitives.
  5. It supports Python 2.4 or newer, all Python 3 versions and PyPy.
  6. You can install it with::
  7. pip install pycryptodome
  8. All modules are installed under the ``Crypto`` package.
  9. Check the pycryptodomex_ project for the equivalent library that
  10. works under the ``Cryptodome`` package.
  11. PyCryptodome is a fork of PyCrypto. It brings several enhancements
  12. with respect to the last official version of PyCrypto (2.6.1),
  13. for instance:
  14. * Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
  15. * Accelerated AES on Intel platforms via AES-NI
  16. * First class support for PyPy
  17. * Elliptic curves cryptography (NIST P-256 curve only)
  18. * Better and more compact API (`nonce` and `iv` attributes for ciphers,
  19. automatic generation of random nonces and IVs, simplified CTR cipher mode,
  20. and more)
  21. * SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms
  22. * Salsa20 and ChaCha20 stream ciphers
  23. * scrypt and HKDF
  24. * Deterministic (EC)DSA
  25. * Password-protected PKCS#8 key containers
  26. * Shamir's Secret Sharing scheme
  27. * Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace)
  28. * Simplified install process, including better support for Windows
  29. * Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
  30. * Major clean ups and simplification of the code base
  31. PyCryptodome is not a wrapper to a separate C library like *OpenSSL*.
  32. To the largest possible extent, algorithms are implemented in pure Python.
  33. Only the pieces that are extremely critical to performance (e.g. block ciphers)
  34. are implemented as C extensions.
  35. For more information, see the `homepage`_.
  36. All the code can be downloaded from `GitHub`_.
  37. .. _pycryptodomex: https://pypi.python.org/pypi/pycryptodomex
  38. .. _`homepage`: http://www.pycryptodome.org
  39. .. _GitHub: https://github.com/Legrandin/pycryptodome