I have reviewed this document as part of the security directorate's ongoing effort to review all IETF documents being processed by the IESG. These comments were written primarily for the benefit of the security area directors. Document editors and WG chairs should treat these comments just like any other last call comments. Status: ready with issues. It is disappointing that such a protocol must be introduced to work around security deficiencies in application platforms - have these security issues been reported to vendors? Anyway, issues: 1. Security consideration says: "Concatenating a publicly known value to a code_challenge (with 256 bits of entropy) and then hashing it with SHA256 would actually reduce the entropy in the resulting code_verifier making it easier for an attacker to brute force." This makes no sense. A brute force attack would still require iteration of 2^256 inputs. How is that easier? 2. The introduction says "No client secret is used (since public clients cannot keep their secrets confidential.)". However, a client secret is used. I suspect I know what is intended, but this should be clarified.