ietf-smime
[Top] [All Lists]

Re: Critical Attributes

1998-01-30 14:58:02
Russ,

Not all ASN.1 compilers "die" when encountering an unknown OID.
It is up to the compiler writer to provide a way of handling this
issue.  I would argue that a good compiler would handle the syntax
correctly provided it is properly encoded and provide an exception
handler for unrecognized semantics (values).

I guess it is obvious that I don't have a problem with this...

John

At 02:54 PM 1/30/98 -0500, Russ Housley wrote:
All:

The current ASN.1 syntax of attribute is actually a bit of a problem.  If
an attribute is encountered that is unknown, the ASN.1 decoder might die.
To avoid this problem, X.509v3 extensions all have a type of OCTET STRING.
These extensions require a second decode pass to extract the extension
value from the OCTET STRING.

Can some folks with real life implemntation experience of ANY offer
suggestions?

Russ


-----Original Message-----
From: Russ Housley <housley(_at_)spyrus(_dot_)com>
To: ietf-smime(_at_)imc(_dot_)org <ietf-smime(_at_)imc(_dot_)org>
Date: Thursday, January 29, 1998 9:53 AM
Subject: Critical Attributes


All:

There has benn much discussion of attribute criticality.  It is my view
that there is concensus that the feature is needed.  Two mecanisms for the
addition of this feature have been offered.

First alternative: include a BOOLEAN in the attribute definition that
states the criticality of the the attribute.  If the attribute is marked
critical and an implementation does not know how to process the attribute,
then the message must be rejected.

Second alternative: include a new attribute that lists the OIDs of all
critical attributes.

In terms of backward compatibility with S/MIME 2, these two mechanisms have
very different implications.

By defining a DEFAULT value for the BOOLEAN, all non-critical attributes
will be backward compatible.  Also, we can use the S/MIME 3 version to
indicate that critical attributes are present.  This use of version should
keep an S/MIME 2 implementation from having an ASN.1 decode error.  The
ASN.1 would be:

  Attribute ::= SEQUENCE {
    attributeType   OBJECT IDENTIFIER,
    critical        BOOLEAN DEFAULT FALSE,
    attributeValues SET OF AttributeValue }

  AttributeValue ::= ANY

On the other hand, the critical attribute list makes no change to the
syntax.  However, an S/MIME 2 implementation would simply ignore this
attribute as it would any other unsupported attribute.  So, the criticality
of the attributes would not really be imposed.

This breifi analysis leads to to the coluclusion that the critical boolean
is a better path.  Is there concensus on this point?

Russ




<Prev in Thread] Current Thread [Next in Thread>