JOSE RFC¶
joserfc
is a Python library that provides a comprehensive implementation of
several essential JSON Object Signing and Encryption (JOSE) standards, including
JWS (JSON Web Signature), JWE (JSON Web Encryption), JWK (JSON Web Key),
JWA (JSON Web Algorithms), and JWT (JSON Web Tokens).
It is derived from Authlib, but features a redesigned API specific to JOSE functionality.
Usage¶
A quick and simple JWT encoding and decoding would look something like this:
>>> from joserfc import jwt
>>> from joserfc.jwk import OctKey
>>> key = OctKey.import_key("secret")
>>> encoded = jwt.encode({"alg": "HS256"}, {"k": "value"}, key)
>>> encoded
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrIjoidmFsdWUifQ.ni-MJXnZHpFB_8L9P9yllj3RNDfzmD4yBKAyefSctMY'
>>> token = jwt.decode(encoded, key)
>>> token.header
{'alg': 'HS256', 'typ': 'JWT'}
>>> token.claims
{'k': 'value'}
You would find more details and advanced usage in JSON Web Token section.
Important
The string "secret"
employed in the above example is solely intended for demonstration
purposes. In a production environment, it is crucial to use a highly secure secret key to
ensure robust security measures.
RFCs¶
It follows RFCs with extensible API. The module has implementations of:
RFC7515: JSON Web Signature
RFC7516: JSON Web Encryption
RFC7517: JSON Web Key
RFC7518: JSON Web Algorithms
RFC7519: JSON Web Token
RFC7520: Examples of Protecting Content Using JSON Object Signing and Encryption
RFC7638:
thumbprint
for JWKRFC8037: OKPKey and
EdDSA
algorithmRFC8812:
ES256K
algorithm
And draft RFCs implementation of:
Hint
RFC7520 is implemented as test cases.
Next¶
Explore the following sections to discover more about joserfc
and its features.