English

Developer tools · JWT decoder

RFC 7519 and the JOSE Family: JWT, JWS, JWE, JWK and JWA Explained

· Background

jwt cryptography standards

A map connecting JWT claims with signed and encrypted JOSE envelopes
Original ToolAcre vector illustration

JWT is one member of a family of specifications from the IETF JOSE working group. This post explains what each RFC defines, how they fit together, and why a JWT is usually a JWS.

Five acronyms, one token — why documentation mentions JWS and JWE when you only asked about JWT

Token documentation moves among JWT, JWS, JWE, JWK and JWA because they describe different layers of the same ecosystem. Confusion starts when “JWT” is used as shorthand for every compact three-part signed token. Separating claims from envelope and key representation makes the implementation easier to reason about.

ToolAcre’s decoder is intentionally narrower than the family. It handles three-part JWS-shaped input whose first two decoded segments are JSON objects. It detects five-part encrypted compact input and stops, because reading ciphertext without recipient keys would not be decoding the same thing.

The JOSE documents define related formats; this repository does not establish their working-group timeline

The related specifications came from IETF JOSE work, but the repository sources do not establish the detailed organizational timeline requested by the outline. This article therefore avoids inventing dates or process history and concentrates on the format relationships observable in the tool and plan.

The practical question is which layer owns each decision. Claim names describe application statements, signatures protect encoded material, encryption protects content, JSON key objects represent key information, and algorithm identifiers name operations. No one acronym replaces the others.

JWS (RFC 7515) — signing arbitrary content and the compact serialization JWTs use

JWS describes signed or MAC-protected content. Its compact form has three segments: protected header, payload and signature. The signing input uses the first two encoded segments joined by a dot. A JWT commonly travels in this envelope, which is the form ToolAcre splits and inspects.

The header and payload may decode into JSON, while the signature is bytes rather than a third object. ToolAcre reports signature presence and size but always marks it unverified. Thus it can illustrate JWS structure without claiming any cryptographic result.

JWE (RFC 7516) — encrypting content, with a five-part serialization

JWE describes encrypted content. Its compact form has five segments representing a protected header, encrypted-key material, initialization value, ciphertext and authentication tag. Four dots are therefore a strong structural clue that a three-part JWT decoder has received a different envelope.

ToolAcre emits a specific JWE error and explains that contents cannot be read without the decryption key. It does not treat ciphertext as malformed JSON or try to display random bytes. Encryption and signing can also be composed, but nested processing is outside this route.

JWK and JWA (RFC 7517 and 7518) — representing keys as JSON and naming the algorithms

JWK provides a JSON representation for cryptographic key information, while JWA names algorithm identifiers and related parameters used across JOSE. Their existence does not mean a token may choose its own trusted key or algorithm. A verifier must constrain both from an issuer and application policy.

The ToolAcre algorithm notes explain only a finite set of labels present in source and call anything else unrecognised. They are descriptions, not implementations. The decoder neither imports a JWK nor performs an algorithm from JWA, which keeps the inspection boundary explicit.

JWT (RFC 7519) — the claims format that rides on JWS or JWE

JWT defines a claims object and registered names such as issuer, subject, audience and NumericDates. Those claims can be carried in a signed or encrypted JOSE structure. The payload layer therefore answers “what statements are represented,” while the envelope answers how those bytes are protected or concealed.

ToolAcre expects the decoded payload to be a JSON object and lists its claims. An array, number or null is rejected for this tool. Even a well-shaped object remains untrusted until the relevant envelope is processed by a configured verifier or recipient.

What this does not cover — the later profiles such as RFC 8725 best practices and RFC 9068 access tokens, which have their own posts

Later best-practice and profile documents can narrow how these general mechanisms should be used. They deserve separate treatment because a base format does not supply application-specific issuer, audience or token-type policy. This article does not claim that the decoder implements any such profile.

When reviewing a system, write down the exact profile, expected envelope, accepted algorithms, key source and claim rules. That list prevents acronym familiarity from turning into an assumption of compatibility or security.

Takeaway: JWT is the claims, JWS is the envelope — the ToolAcre JWT decoder reads the JWS compact form and shows the JWT header and claims inside

JWT names the claims layer; JWS and JWE provide protection envelopes; JWK represents key data; JWA names algorithm choices. ToolAcre reads the common three-part signed shape and shows header and claims while refusing to verify or decrypt.

Use that map to ask the right next question. Readable JSON identifies the claim layer. Three or five segments identify likely envelope families. Trust still depends on independently configured cryptography and policy, not on the decoder recognising an acronym.