RFC 7797¶
RFC7797 defines the JSON Web Signature (JWS) Unencoded Payload Option, an extension to RFC 7515 that allows the payload of a JWS to be transmitted without Base64URL encoding. This is useful for applications where the payload must remain in its original form, such as streaming data, detached content, or cases where re-encoding would be impractical.
This extension introduces the b64 header parameter and modifies the
rules for producing and verifying JWS signatures when payload encoding
is disabled.
The b64 Header Parameter¶
The b64 header parameter determines whether the payload of a JWS is
Base64URL-encoded before signing:
b64 = true(default) — payload must be Base64URL-encodedb64 = false— payload is included as-is, without encoding
When b64 is false:
It must appear in the protected header
critmust include"b64", ensuring recipients understand itThe payload is transmitted in its original form (binary or text)
The signing input changes accordingly
These constraints ensure that consumers explicitly acknowledge the unencoded payload behavior.
Implementation¶
joserfc fully supports RFC 7797 for both signing and verifying JWS
objects with unencoded payloads.
The relevant functionality is integrated default into:
jws.serialize_compactjws.deserialize_compactjws.serialize_jsonjws.deserialize_json