[dkim-dev] need an interpretation of the base spec
Michael Thomas
mat at cisco.com
Tue Jun 3 15:38:58 PDT 2008
I'm pretty sure I agree with Murray... but what does my reflector do? :)
Mike
Tony Hansen wrote:
> I need an interpretation of the base spec here.
>
> RFC 4871 section 3.5:
> b= The signature data (base64; REQUIRED). Whitespace is ignored in
> this value and MUST be ignored when reassembling the original
> signature. In particular, the signing process can safely insert
> FWS in this value in arbitrary places to conform to line-length
> limits. See Signer Actions (Section 5) for how the signature is
> computed.
>
> ABNF:
>
> sig-b-tag = %x62 [FWS] "=" [FWS] sig-b-tag-data
> sig-b-tag-data = base64string
>
> RFC 4871 section 3.7:
>
> 2. The DKIM-Signature header field that exists (verifying) or will
> be inserted (signing) in the message, with the value of the "b="
> tag deleted (i.e., treated as the empty string), canonicalized
> using the header canonicalization algorithm specified in the "c="
> tag, and without a trailing CRLF.
>
> The test case has a DKIM signature that looks like this:
>
> DKIM-Signature: v=1; q=dns/txt; d=example.com; s=sel1; a=rsa-sha256;^M
> h=Content-Transfer-Encoding:Content-Type:Subject:MIME-Version:^M
> From:Date:To; bh=HryPFX2R6r7JPsX1Z7+yReZddQR2PjvCvdXgaxW5QYU=; b=^M
> dMozOMJVKhnCk7NnC7lqWIdhwU7Jv3DzAmoEC+Ums0KqAe9FOhqPCtbCAN^M
> 061sS2aiKRDA8pzjTeFBsF40yDuYyvJ85ZY1PR5O736DeBEHGw3QX3s9/^M
> LRFcqXV2na7YkJorUyMm4BXDSgmpW3TR8GiiUNXXKaHeucvxxOr3Lq0g=^M
>
> Note how the "b=" is separated from the hash key by the CRLF and white
> space.
>
> Now the question: Does the "value of the 'b=' tag" (that is deleted per
> section 3.7) mean 1) exactly the sig-b-tag-data, or 2) does it include
> the [FWS] between the "=" and the sig-b-tag-data?
>
> Depending on the order you do the remove and canonicalization, and your
> answer to the above question, if #1, then the canonicalized form of the
> DKIM-Signature will use
> c=simple "b= "
> c=relaxed "b= "
>
> And if #2, then the canonicalized form of the DKIM-Signature will use
> c=either "b="
>
> I've seen two different interpretations of this. Of 3 different
> reflectors I got responses from, 2 appear to follow #2 and 1 appears to
> follow #1. One version of my own code is whitespace-preserving, as in
> #1, but another set of code I wrote is not, as in #2. Argh!
>
> Right now, I'm leaning towards thinking that #2 is correct. What say the
> rest of you?
>
> Tony Hansen
> tony at att.com
> _______________________________________________
> dkim-dev mailing list
> dkim-dev at mipassoc.org
> http://mipassoc.org/mailman/listinfo/dkim-dev
>
More information about the dkim-dev
mailing list