Visual RFC.
ALL RFCs / RFC 7636
Read the RFC ↗
RFC 7636 / MECHANISMS

Derive the S256 challenge

02

The challenge commits the request to the verifier without sending that verifier to the authorization endpoint.

Related RFCs and changes

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

DIAGRAM§ 4.2 ↗
RFC 7636 · § 4.2EXAMPLE
3 / 3
Derive the S256 challengeThe challenge commits the request to the verifier without sending that verifier to the authorization endpoint. Current state: Base64url.Derive the S256 challengeASCII verifierSHA-256digest bytesbase64urlcode_challenge · S256
03
Base64url

Send the resulting challenge with code_challenge_method=S256.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

S256 is BASE64URL(SHA256(ASCII(verifier))).

  • S256 is BASE64URL(SHA256(ASCII(verifier))).
  • A client capable of S256 must use it.
  • The plain method has narrower protection and must not be a fallback after S256 fails.
DETAILS

The illustration is schematic. Example values are illustrative; profiles and later security guidance can add requirements.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. Create a transaction secret
  2. Derive the S256 challenge
  3. The code remembers its challenge
  4. A stolen code fails the proof
  5. Do not downgrade the method
RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗