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