[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SCVP Draft 17: Summary of changes




Seth Hitchings wrote:

If you do decide to put together another draft to address some of the
aesthetic issues, I'd like to see some of the tagging oddities (skipping
from 4 to 6, for example) addressed.
Several people have now commented stating that they believe it is important to modify the ASN.1 in SCVP so that explicit tags are sequential, etc.

So, Tim and I went through the document and made changes to the ASN.1 as follows:

(1) We renumbered explicit tags wherever there was a gap in the sequence in draft 17. (2) We removed the explicit tagging where it was clear that the explicit tagging was not necessary. (3) We defined DEFAULT values for several of the INTEGER and ENUMERATED values when defining a default value could be done without affecting the ASN.1 for any other fields.

I plan to submit draft 18 later today. Below is a copy of all of the ASN.1 structures that have been changed since draft 17 (at least, I believe that this is all of them).

Dave

-----------------------------------------------------------------------------------


  CVRequest ::= SEQUENCE {
    cvRequestVersion           INTEGER DEFAULT 1,
    query                      Query,
    requestorRef           [0] SEQUENCE SIZE (1..MAX) OF OCTET STRING
                                 OPTIONAL,
    requestNonce           [1] OCTET STRING OPTIONAL,
    requestorName          [2] GeneralName OPTIONAL,
    reqestExtensions       [3] Extensions OPTIONAL }

  ValidationPolicy ::= SEQUENCE {
    validationPolRef           ValidationPolRef,
    validationAlg          [0] ValidationAlg OPTIONAL,
    userPolicySet          [1] SEQUENCE SIZE (1..MAX) OF OBJECT
                                 IDENTIFIER OPTIONAL,
    inhibitPolicyMapping   [2] BOOLEAN OPTIONAL,
    requireExplicitPolicy  [3] BOOLEAN OPTIONAL,
    inhibitAnyPolicy       [4] BOOLEAN OPTIONAL,
    trustAnchors           [5] TrustAnchors OPTIONAL,
    keyUsages              [6] KeyUsages OPTIONAL,
    extendedKeyUsages      [7] SEQUENCE OF KeyPurposeId OPTIONAL }

  CVResponse ::= SEQUENCE {
    cvResponseVersion          INTEGER,
    policyID                   INTEGER,
    producedAt                 GeneralizedTime,
    responseStatus             ResponseStatus,
    respValidationPolicy   [0] RespValidationPolicy OPTIONAL,
    requestRef             [1] RequestReference OPTIONAL,
    requestorRef           [2] SEQUENCE SIZE (1..MAX) OF OCTET STRING
                                 OPTIONAL,
    requestorName          [3] GeneralNames OPTIONAL,
    replyObjects           [4] ReplyObjects OPTIONAL,
    respNonce              [5] OCTET STRING OPTIONAL,
    serverContextInfo      [6] OCTET STRING OPTIONAL,
    cvResponseExtensions   [7] Extensions OPTIONAL }

  ResponseStatus ::= SEQUENCE {
      statusCode               CVStatusCode DEFAULT okay,
      errorMessage             UTF8String OPTIONAL }

  CertReply ::= SEQUENCE {
    cert                       CertReference,
    replyStatus                ReplyStatus DEFAULT success,
    replyValTime               GeneralizedTime,
    replyChecks                ReplyChecks,
    replyWantBacks             ReplyWantBacks,
    validationErrors       [0] SEQUENCE SIZE (1..MAX) OF
                                 OBJECT IDENTIFIER OPTIONAL,
    nextUpdate             [1] GeneralizedTime OPTIONAL,
    certReplyExtensions    [2] Extensions OPTIONAL }

  ReplyCheck ::= SEQUENCE {
    check                      OBJECT IDENTIFIER,
    status                     INTEGER DEFAULT 0 }

  ValPolRequest ::= SEQUENCE {
    vpRequestVersion           INTEGER DEFAULT 1,
    requestNonce               OCTET STRING }

  ValPolResponse ::= SEQUENCE {
    vpResponseVersion                INTEGER,
    maxCVResponseVersion             INTEGER,
    maxVPResponseVersion             INTEGER,
    defaultPolicyID                  INTEGER,
    thisUpdate                       GeneralizedTime,
    nextUpdate                       GeneralizedTime OPTIONAL,
    validationPolices                SEQUENCE OF ValidationPolRef,
    validationAlgs                   SEQUENCE OF OBJECT IDENTIFIER,
    authPolicies                     SEQUENCE OF AuthPolicy,
    responseTypes                    ResponseTypes,
    defaultPolicyValues              RespValidationPolicy,
    revocationInfoTypes              RevocationInfoTypes,
    serverPublicKeys                 SEQUENCE OF KeyAgreePublicKey
                                       OPTIONAL,
    clockSkew                        INTEGER DEFAULT 10,
    requestNonce                     OCTET STRING OPTIONAL }

  AuthPolicy ::= CHOICE {
    authPolRefByOID       OBJECT IDENTIFIER,
    authPolRefByURI       IA5String }