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