tl;dr the proposed correction does the right thing

Section: 3.5

Original Text
-------------
x-sig-q-tag-args = qp-hdr-value

Corrected Text
--------------
x-sig-q-tag-args = dkim-quoted-printable  ; with ":" encoded

... Section 2.10 shows:

    qp-hdr-value    =  dkim-quoted-printable    ; with "|" encoded

so the suggested change doesn't seem to accomplish the stated goal,
since the two rules are equivalent.

Nor does dkim-safe-char get us there.

I think the rule should exclude WSP, ":", "/" and "=", and I'm not
seeing an existing one that gets us there.  Am I missing it?

I also don't see any ABNF term that does the trick.  The
DKIM-signature is a tag-list which is a list of tag=value separated by
semicolons.  The q= tag in a signature is a list of query methods
separated by colons.  Each query method can either be a token or token
/ args where the args is x-sig-q-tag-args.  In those args, you have to
quote a semicolon to avoid starting a new tag, you have to quote a
colon to avoid starting a new method, and quote whitespace which is
otherwise ignored.  A slash or equal sign isn't a problem since you
can't have multiple args per method or multiple values for a tag.

The closest we have is dkim-quoted-printable which already requires
that you quote white space and semicolons, so I think the simplest
non-wrong change would be what Juan proposed, dkim-quoted-printable
with colons also encoded.

R's,
John

PS: For people who don't know him, Juan is the author of the widely
used Port25 MTA, so I expect he ran into this while writing its DKIM
parser.
_______________________________________________
NOTE WELL: This list operates according to
http://mipassoc.org/dkim/ietf-list-rules.html

Reply via email to