ietf-mailsig
[Top] [All Lists]

Re: DKIM

2005-07-15 12:20:15

wayne wrote:

In <42D55299(_dot_)4010404(_at_)cisco(_dot_)com> Jim Fenton 
<fenton(_at_)cisco(_dot_)com> writes:

William, thanks for your comments.  Responses inline.

william(at)elan.net wrote:

From section 3.5 -

 DKIM-Signature: a=rsa-sha1; d=example.net; s=brisbane  <----
Missing ";"
   c=simple; q=dns; i=(_at_)eng(_dot_)example(_dot_)net; t=1117574938; 
x=1118006938;
   h=from:to:subject:date;
   z=From:foo(_at_)eng(_dot_)example(_dot_)net|To:joe(_at_)example(_dot_)com|
    Subject:demo%20run|Date:July%205,%202005%203:44:08%20PM%20-0700

 And I think another missing ";" at the end of "z" value as well.
Correct.

Is the missing semicolon at the end of the "z" tag incorrect?  From
the ABNF, it looks like the final semicolon is optional.  What are we
dealing with here, pascal or C?
William didn't include the entire header when he quoted the example. The b= tag/value will always be the last one, so the z= value must terminate with a semicolon.

  tag-list  =  tag-spec 0*( ";" tag-spec ) [ ";" ]
  tag-spec  =  [FWS] tag-name [FWS] "=" [FWS] tag-value [FWS]
  tag-name  =  ALPHA 0*ALNUMPUNC
  tag-value =  *VALCHAR    ; SWSP prohibited at beginning and end
  VALCHAR   =  %9 / %d32 - %d58 / %d60 - %d126
                            ; HTAB and SP to TILDE except SEMICOLON
  ALNUMPUNC =  ALPHA / DIGIT / "-"
                            ; alphanumeric plus hyphen.


Also, it looks to be intentional, but something like:

    c=simple;q=dns; i=(_at_)eng(_dot_)example(_dot_)net

appears to still define "c", "q" and "i", even though there isn't a
space between the ";" and the "q".

If this is not what you intend, then the ABNF needs to be fixed.

If this is what you intend, I suggest that it is a mistake and will
cause confusion.  I think you would be better off requiring at least
one whitespace between tags.
Confusion in what sense? It parses fine without the spaces. The spaces make it somewhat more readable to humans but that's not the audience we're aiming at here. If humans spend much time looking at DKIM-Signature header fields, we haven't succeeded.

-Jim


<Prev in Thread] Current Thread [Next in Thread>