Subject: RFC 3852 Errata

From: Russ Housley <[email-masked]>
Date: Sat, 22 Jan 2005 14:04:01 -0500

RFC 3852 contains a few features that were not available in RFC 2630.  One 
of these features is part of EnvelopedData.  As such, the version number 
processing was updated to preserve backward compatibility.  Unfortunately, 
there is an error in the pseudo code used to determine the proper version 
number.

Section 6.1 contains the incorrect pseudo code.  The corrected pseudo code 
is provided.

OLD:

          IF (originatorInfo is present) AND
             ((any certificates with a type of other are present) OR
             (any crls with a type of other are present))
          THEN version is 4
          ELSE
             IF ((originatorInfo is present) AND
                (any version 2 attribute certificates are present)) OR
                (any RecipientInfo structures include pwri) OR
                (any RecipientInfo structures include ori)
             THEN version is 3
             ELSE
                IF (originatorInfo is absent) OR
                   (unprotectedAttrs is absent) OR
                   (all RecipientInfo structures are version 0)
                THEN version is 0
                ELSE version is 2

NEW:

          IF (originatorInfo is present) AND
             ((any certificates with a type of other are present) OR
             (any crls with a type of other are present))
          THEN version is 4
          ELSE
             IF ((originatorInfo is present) AND
                (any version 2 attribute certificates are present)) OR
                (any RecipientInfo structures include pwri) OR
                (any RecipientInfo structures include ori)
             THEN version is 3
             ELSE
                IF (originatorInfo is absent) AND
                   (unprotectedAttrs is absent) AND
                   (all RecipientInfo structures are version 0)
                THEN version is 0
                ELSE version is 2

Please publish this errata as soon as possible.

Russ