Visual RFC.
ALL RFCs / RFC 8785
Read the RFC ↗
RFC 8785 / REPEATABLE JSON BYTES

Encode bytes, then verify

05

UTF-8 makes the canonical text into platform-independent bytes. A signature scheme must still validate its input, application rules and cryptographic proof before acting.

RFC 8785 · § 3.2.4EXAMPLE
5 / 5
Encode bytes, then verifyCanonical text x:é becomes ten UTF-8 bytes including C3 A9 for é. The following states are a separate signature application: I-JSON checked with action pending, ecosystem failure stops before verification and action, then an alternative successful branch passes I-JSON, ecosystem and signature checks before action under its policy. JCS alone provides neither signature nor authorization.Separate signature-processing illustration✓I-JSON check✓Application conventions✓Signature verificationchecks passedAct only under application policyCanonical bytes alone prove neither identity nor permission
05
Verify before acting in the successful branch.

Alternative case: I-JSON, application conventions and the signature all pass. Only now may the application act under its own authorization policy.

Source for this drawing: RFC 8785 · Read RFC section 3.2.4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

First, agree how to read the message.

An encoding tells a reader how to interpret bytes. A format tells it how values fit together. Correctly reading a value does not make that value trustworthy.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Identical bytes help verification; they do not authenticate themselves.

  • The canonical result MUST be encoded in UTF-8. Sending canonical JSON as the wire format is optional; endpoints can canonicalize an ordinary representation themselves.
  • For signature schemes like Appendix F, applications MUST parse and check I-JSON, check correctness under the ecosystem conventions (including locating the signature), and verify the signature before acting. If any step fails, the operation MUST be aborted.
  • Appendix F illustrates saving/removing a designated signature property before canonicalizing the remaining data, then verifying with the appropriate algorithm/key. It does not define one universal signature property, key-discovery or authorization policy.
DETAILS

The byte example is the complete UTF-8 encoding of {"x":"é"}; no hash or signature is fabricated. The last three states are a separate signature-processing illustration: ordinary parsing first, an application-rule failure that stops before signature verification, and an alternative fully checked path. Success assumes the application’s algorithm/key policy and other authorization checks.

Read the RFC section ↗

All chapters in RFC 8785

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗