(Note: part2 of the reply)
On Wed, 13 Jul 2005, Jim Fenton wrote:
4. Version tag
From section 3.5 -
"Tags on the DKIM-Signature header field along with their type and
requirement status are shown below. Valid tags are:
v= Version (MUST NOT be included). This tag is reserved for future use
to indicate a possible new, incompatible version of the specification.
It MUST NOT be included in the DKIM-Signature header field."
I understand your intent but above is funny to say the least, plus in
light of the fact that in some other part of the spec it says that
unknown tags are to be ignored, it would be wrong. What you should
probably say is that "v" is reserved tag and if verifying agent
confirming to this spec encounters "v" tag it should abort processing
and consider it to be incompatible header and abort processing.
I thought this was what it is saying, i.e., if the v= tag is present it is
incompatible with the current version of the spec.
However personally I think you should specify 1.0 as default version
and say that it MAY be added but its not required and that if "v"
tag is not present the header field should be processed as if it
had default "1.0" version tag
The rationale here is to avoid defaults as much as possible. I don't see any
functional difference between "no version" and using version 1.0 as you have
I disagree with this system, I think "v=" should be at the very least
optional and you should not abort processing if its present.
There is also difference between minor and major changes (v=1.0 to v=1.1
as opposed to v=1.0 to v=2.0) and minor is considered valuable addition
to any version string to indicate standard document compatibility.
There have also been several others who have said that "v" tag should
be present, so this issue should be revisited.