Implements JWK,JWS,JWE specifications using python-cryptography
Python
478
350 commits
updated Oct 5, 2026
An implementation of the JOSE Working Group documents:
pip install jwcrypto
http://jwcrypto.readthedocs.org
2020.12.11: The RSA1_5 algorithm is now considered deprecated due to numerous implementation issues that make it a very problematic tool to use safely. The algorithm can still be used but requires explicitly allowing it on object instantiation. If your application depends on it there are examples of how to re-enable RSA1_5 usage in the tests files.
Note: if you enable support for RSA1_5 and the attacker can send you chosen
ciphertext and is able to measure the processing times of your application,
then your application will be vulnerable to a Bleichenbacher RSA padding
oracle, allowing the so-called "Million messages attack". That attack allows
to decrypt intercepted messages (even if they were encrypted with RSA-OAEP) or
forge signatures (both RSA-PKCS#1 v1.5 and RSASSA-PSS).
Given JWT is generally used in tokens to sign authorization assertions or to encrypt private key material, this is a particularly severe issue, and must not be underestimated.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
183 followers · starred Jun 2015
882 followers · starred Sep 2015
271 followers · starred Sep 2021
38 followers · starred Sep 2024
Implements JWK,JWS,JWE specifications using python-cryptography
Python
478
350 commits
updated Oct 5, 2026
An implementation of the JOSE Working Group documents:
pip install jwcrypto
http://jwcrypto.readthedocs.org
2020.12.11: The RSA1_5 algorithm is now considered deprecated due to numerous implementation issues that make it a very problematic tool to use safely. The algorithm can still be used but requires explicitly allowing it on object instantiation. If your application depends on it there are examples of how to re-enable RSA1_5 usage in the tests files.
Note: if you enable support for RSA1_5 and the attacker can send you chosen
ciphertext and is able to measure the processing times of your application,
then your application will be vulnerable to a Bleichenbacher RSA padding
oracle, allowing the so-called "Million messages attack". That attack allows
to decrypt intercepted messages (even if they were encrypted with RSA-OAEP) or
forge signatures (both RSA-PKCS#1 v1.5 and RSASSA-PSS).
Given JWT is generally used in tokens to sign authorization assertions or to encrypt private key material, this is a particularly severe issue, and must not be underestimated.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
183 followers · starred Jun 2015
882 followers · starred Sep 2015
271 followers · starred Sep 2021
38 followers · starred Sep 2024