Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-spop-09.txt

John Bradley <> Thu, 05 February 2015 16:49 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id BAD171A89FB for <>; Thu, 5 Feb 2015 08:49:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id J_N1mBhI4a4k for <>; Thu, 5 Feb 2015 08:49:35 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6945E1A07BD for <>; Thu, 5 Feb 2015 08:49:35 -0800 (PST)
Received: by with SMTP id l89so7000954qgf.6 for <>; Thu, 05 Feb 2015 08:49:34 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=y6tTTIspmnpdSjzQKQM557XdQ1d+E3YwxH1WtGitoJQ=; b=RLSFOanRtIaWwFDdF5UZyxcQ0Z1LrNgW0HMZyN63LkyByxBTpjW2OO7EYMuIM07Rtn E6hSrqHTAkQuW7hs/9FBR+CrGeUm//TYr+R0hO/DHdthTDGsJ/tq2DdABDUeYFFlV8Qv 65YkkblUbg75lC54XhJ1iYDmtUP6fBWIhKFUw776rz2EOhQ1MOmCITNTi5tEAiD0QYsL 79fi2h+9KK4iki6Avtf1S/7R2S/A+AwTho6t7n+/3qib3Jx7bTwAGi0gBQDLf5EzSqut UQWOvDcM1x4N0Z8UxLm+M0+eZzCz4nkxcRARVJgGX//Gc01v8cv5Hu8rWTj6aXQQf0/5 miOQ==
X-Gm-Message-State: ALoCoQlZON4FEtplGBlHlQYmbnm5Ye685GnrTjFNBAhwKuxflAf/5z7b0fFSxlcODaZ46E/DCOBQ
X-Received: by with SMTP id u6mr10261636qcn.10.1423154974549; Thu, 05 Feb 2015 08:49:34 -0800 (PST)
Received: from [] ([]) by with ESMTPSA id o88sm985660qge.22.2015. (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 05 Feb 2015 08:49:33 -0800 (PST)
Content-Type: multipart/signed; boundary="Apple-Mail=_A5BA1611-85EB-40CF-BA8F-3A1CE8CBC534"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: John Bradley <>
In-Reply-To: <>
Date: Thu, 05 Feb 2015 13:49:29 -0300
Message-Id: <>
References: <> <>
To: "Manger, James" <>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <>
Cc: "" <>
Subject: Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-spop-09.txt
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 05 Feb 2015 16:49:37 -0000


> On Feb 4, 2015, at 10:43 PM, Manger, James <> wrote:
>>    Title           : Proof Key for Code Exchange by OAuth Public Clients
>> 	Filename        : draft-ietf-oauth-spop-09.txt
> Some nits on this draft:
> 1. 42 chars.
> The lower limit of 42 chars for code_verifier: is not mentioned in prose (just the upper limit); is too high (128-bits=22-chars is sufficient); and doesn't correspond to 256-bits (BASE64URL-ENCODE(32 bytes) gives 43 chars, not 42).

In my editors draft I fixed the 43 octet base64url encoding of 32bytes.  I originally had 43 but it got changed at some point  

Is there working group feedback on making the lower limit clear in the prose and if so what should it be?  22-chars (128 bits) or 43 char (256 bits)?

> 2. 
> Quotes around "code_verifier" and "code_challenge" in prose are okay, though not really necessary as the underscore is enough to distinguish them as technical labels. Quotes around these terms in formula is bad as it looks like the formula applies to the 13 or 14 chars of the label. The quoting is also used inconsistently.
> Suggestion: remove all quotes around "code_verifier" and "code_challenge" in prose and formula.
> For example, change ASCII("code_verifier") to ASCII(code_verifier).

I am going to leave this for a later formatting cleanup at the moment, I need to find a good style compromise that works with rfcmarkup.

> 3.
> Two ways to check code_verifier are given in appendix B, whereas only one of these is mentioned in section 4.6.
>  SHA256(verifier) === B64-DECODE(challenge)
>  B64-ENCODE(SHA256(verifier)) === challenge
> I suggest only mentioning the 2nd (change 4.6 to use the 2nd, and drop the 1st from appendix B). It is simpler to mention only one. It also means base64url-decoding is never done, and doesn't need to be mentioned in the spec.
Yes when I added the example I realized that the normative text was the more complicated way to do the comparison.

I will go back and refactor the main text to talk about the simpler comparison and drop the base64url-decode references.
> 4.
> Expand "MTI" to "mandatory to implement".

Done in editors draft.
> P.S. Suggesting code challenge method names not exceed 8 chars to be compact is a bit perverse given the field holding these values has the long name "code_challenge_method" ;)

  On the topic of the parameter  name  "code_challange_method",  James has a point in that it is a bit long.

We could shorten it to "ccm".   If we want to change the name sooner is better than later.  

It is that balance between compactness and clear parameter names for developers, that we keep running into.

I don't know that encouraging longer parameter values is the best direction.

Feedback please

John B.
> --
> James Manger
> _______________________________________________
> OAuth mailing list