You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.3 KiB

  1. [![PyPI](https://img.shields.io/pypi/v/jwcrypto.svg)](https://pypi.org/project/jwcrypto/)
  2. [![Changelog](https://img.shields.io/github/v/release/latchset/jwcrypto?label=changelog)](https://github.com/latchset/jwcrypto/releases)
  3. [![Build Status](https://github.com/latchset/jwcrypto/actions/workflows/build.yml/badge.svg)](https://github.com/latchset/jwcrypto/actions/workflows/build.yml)
  4. [![ppc64le Build](https://github.com/latchset/jwcrypto/actions/workflows/ppc64le.yml/badge.svg)](https://github.com/latchset/jwcrypto/actions/workflows/ppc64le.yml)
  5. [![Code Scan](https://github.com/latchset/jwcrypto/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/latchset/jwcrypto/actions/workflows/codeql-analysis.yml)
  6. [![Documentation Status](https://readthedocs.org/projects/jwcrypto/badge/?version=latest)](https://jwcrypto.readthedocs.io/en/latest/?badge=latest)
  7. JWCrypto
  8. ========
  9. An implementation of the JOSE Working Group documents:
  10. - RFC 7515 - JSON Web Signature (JWS)
  11. - RFC 7516 - JSON Web Encryption (JWE)
  12. - RFC 7517 - JSON Web Key (JWK)
  13. - RFC 7518 - JSON Web Algorithms (JWA)
  14. - RFC 7519 - JSON Web Token (JWT)
  15. - RFC 7520 - Examples of Protecting Content Using JSON Object Signing and
  16. Encryption (JOSE)
  17. Installation
  18. ============
  19. pip install jwcrypto
  20. Documentation
  21. =============
  22. http://jwcrypto.readthedocs.org
  23. Deprecation Notices
  24. ===================
  25. 2020.12.11: The RSA1_5 algorithm is now considered deprecated due to numerous
  26. implementation issues that make it a very problematic tool to use safely.
  27. The algorithm can still be used but requires explicitly allowing it on object
  28. instantiation. If your application depends on it there are examples of how to
  29. re-enable RSA1_5 usage in the tests files.
  30. Note: if you enable support for `RSA1_5` and the attacker can send you chosen
  31. ciphertext and is able to measure the processing times of your application,
  32. then your application will be vulnerable to a Bleichenbacher RSA padding
  33. oracle, allowing the so-called "Million messages attack". That attack allows
  34. to decrypt intercepted messages (even if they were encrypted with RSA-OAEP) or
  35. forge signatures (both RSA-PKCS#1 v1.5 and RSASSA-PSS).
  36. Given JWT is generally used in tokens to sign authorization assertions or to
  37. encrypt private key material, this is a particularly severe issue, and must
  38. not be underestimated.