Subject: [pkix] question/clarification on rfc5126 (CMS Advanced Electronic Signatures)

From: Kopylov Denis <[email-masked]>
Date: Tue, 24 Aug 2010 14:38:34 +0400

Good day, pkix.
Here is the words from rfc5126, I'd like you to comment (if its possible :)

    RevocationValues ::=  SEQUENCE {
       crlVals          [0] SEQUENCE OF CertificateList OPTIONAL,
       ocspVals         [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
       otherRevVals     [2] OtherRevVals OPTIONAL }

    OtherRevVals ::= SEQUENCE {
       OtherRevValType   OtherRevValType,
       OtherRevVals      ANY DEFINED BY OtherRevValType }

    OtherRevValType ::= OBJECT IDENTIFIER

    The syntax and semantics of the other revocation values
    (OtherRevVals) are outside the scope of the present document

I clearly see that "...(OtherRevVals) are outside the scope of the 
present document..", but nevertheless here is the question:
RevocationValues.crlVals and RevocationValues.ocspVals are designed to 
store multiple values of corresponding type.
In contrast, RevocationValues.otherRevVals, per definition, can store 
only one value. It may be a complex type value, but still is only one value.
The definition I'd expected here is:

    RevocationValues ::=  SEQUENCE {
       crlVals          [0] SEQUENCE OF CertificateList OPTIONAL,
       ocspVals         [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
       otherRevVals     [2] OtherRevVals OPTIONAL }

    OtherRevVals ::= SEQUENCE OF OtherRevVal

    OtherRevVal ::= SEQUENCE {
       OtherRevValType   OtherRevValType,
       OtherRevVal      ANY DEFINED BY OtherRevValType }

Am I missing/misunderstanding something?
Or RevocationValues.otherRevVals is just totally unused and not 
important enough to be in line with other parts of structure?

-- 
Denis Kopylov
LLC Top Cross
Mail: [email-masked]