GeneratePKCECodes generates a new pair of PKCE (Proof Key for Code Exchange) codes. It creates a cryptographically random code verifier and its corresponding SHA256 code challenge, as specified in RFC 7636. This is a critical security feature for the OAuth 2.0 authorization code flow.
()
| 15 | // SHA256 code challenge, as specified in RFC 7636. This is a critical security |
| 16 | // feature for the OAuth 2.0 authorization code flow. |
| 17 | func GeneratePKCECodes() (*PKCECodes, error) { |
| 18 | // Generate code verifier: 43-128 characters, URL-safe |
| 19 | codeVerifier, err := generateCodeVerifier() |
| 20 | if err != nil { |
| 21 | return nil, fmt.Errorf("failed to generate code verifier: %w", err) |
| 22 | } |
| 23 | |
| 24 | // Generate code challenge using S256 method |
| 25 | codeChallenge := generateCodeChallenge(codeVerifier) |
| 26 | |
| 27 | return &PKCECodes{ |
| 28 | CodeVerifier: codeVerifier, |
| 29 | CodeChallenge: codeChallenge, |
| 30 | }, nil |
| 31 | } |
| 32 | |
| 33 | // generateCodeVerifier creates a cryptographically secure random string to be used |
| 34 | // as the code verifier in the PKCE flow. The verifier is a high-entropy string |
no test coverage detected