Subject: Timestamp: 03: semantic id instead of version number

From: "Manger, James" <[email-masked]>
Date: Mon, 27 Sep 1999 12:47:55 +1000

Replace the version field in TSTInfo with a semantics field.
<	version	INTEGER  { v1(0) },
---
>	semantics	OBJECT IDENTIFIER (id-semantics-timestamp),

"This standard defines a timestamp token syntax and the meaning of each
field in that syntax.  The value of the semantics field identifies the
meaning of the other fields.  The meanings defined in this standard shall be
identified by id-semantics-timestamp.  Future versions of this standard may
extend the timestamp token syntax in accordance with the ASN.1 extensibility
rules (e.g. may add optional fields to the end of the TSTInfo SEQUENCE).  If
and only if the changes alter meaning of existing fields will a new
semantics id be used."

"An implementation of this version of the standard may safely ignore any
extra fields at the end of the timestamp token (though they must be included
when verifying the signature on the token) as long as the semantics field is
id-semantics-timestamp.  A timestamp token with an unknown semantics value
must be rejected."

Explicitly identifying the semantics prevents any possible misinterpretation
of the token.  It is possible that a DER-encoded timestamp could be decoded
as a value of another ASN.1 type (with a compatible arrangement of tags).
However, no value of such a type can reasonable start with the object
identifier value used in a timestamp.  This is important as the TSA signs a
message imprint but makes absolutely no statement or promise about it, i.e.
the TSA signs a message but has no intention of being bound by the content
of that message.

[A semantics field performs a role similar to the critical field of a
certificate extension.]