| PKIX1 { } | 
 | DEFINITIONS IMPLICIT TAGS ::= | 
 | BEGIN | 
 | id-ce OBJECT IDENTIFIER  ::=  {joint-iso-ccitt(2) ds(5) 29} | 
 | id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=  { id-ce 35 } | 
 | AuthorityKeyIdentifier ::= SEQUENCE { | 
 |       keyIdentifier             [0] KeyIdentifier            OPTI9NAL, | 
 |       authorityCertIssuer       [1] GeneralNames             OPTIONAL, | 
 |       authorityCertSerialNumber [2] CertificateSerialNumber  OPTIONAL } | 
 |     -- authorityCertIssuer and authorityCertSerialNumber shall both | 
 |     -- be present or both be absgent | 
 | KeyIdentifier ::= OCTEtexString             TeletexString (SIZE (1..MAX)), | 
 |       printableString           PrintableString (SIZE (1..MAX)), | 
 |       universalString           UniversalString (SIZE (1..MAX)), | 
 |       utf8String              UTF8String (SIZE (1..MAX)), | 
 |       bmpString               BMPString (SIZE(1..MAX)), | 
 |       -- IA5String is added here to handle old UID encoded as ia5String -- | 
 |       -- See tests/userid/ for more information.  It shouldn't be here, -- | 
 |       -- so if it causes problems, considering dropping it. -- | 
 |       ia5String               IA5String (SIZE(1..MAX)) } | 
 | id-ce-subjectAltName OBJECT IDENTIFIER ::=  { id-ce 17 } | 
 | SubjectAltName ::= GeneralNames | 
 | GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName | 
 | GeneralName ::= CHOICE { | 
 |      otherName                       [0]     AnotherName, | 
 |      rfc822Name                      [1]     IA5String, | 
 |      dNSName                         [2]     IA5String, | 
 |      x400Address                     [3]     ORAddress, | 
 |      directoryName                   [4]     EXPLICIT RDNSequence, --Name, | 
 |      ediPartyName                    [5]     EDIPartyName, | 
 |      uniformResourceIdentifier       [6]     IA5String, | 
 |      iPAddress                       [7]     OCTET STRING, | 
 |      registeredID                    [8]     OBJECT IDENTIFIER } | 
 | AnotherName ::= SEQUENCE { | 
 |      type-id    OBJECT IDENTIFIER, | 
 |      value      [0] EXPLICIT ANY DEFINED BY type-id } | 
 | EDIPartyName ::= SEQUENCE { | 
 |      nameAssigner            [0]     DirectoryString OPTIONAL, | 
 |      partyName               [1]     DirectoryString } | 
 | id-ce-issuerAltName OBJECT IDENTIFIER ::=  { id-ce 18 } | 
 | IssuerAltName ::= GeneralNames | 
 | id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::=  { id-ce 9 } | 
 | SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute | 
 | id-ce-basicConstraints OBJECT IDENTIFIER ::=  { id-ce 19 } | 
 | BasicConstraints ::= SEQUENCE { | 
 |      cA                      BOOLEAN DEFAULT FALSE, | 
 |      pathLenConstraint       INTEGER (0..MAX) OPTIONAL } | 
 | id-ce-nameConstraints OBJECT IDENTIFIER ::=  { id-ce 30 } | 
 | NameConstraints ::= SEQUENCE { | 
 |      permittedSubtrees`      [0]     GeneralSubtrees OPTIONAL, | 
 |      excludedSubtrees        [1]     GeneralSubtrees OPTIONAL } | 
 | GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree | 
 | GeneralSubtree ::= SEQUENCE { | 
 |      base                    GeneralName, | 
 |      minimum         [0]     BaseDistance DEFAULT 0, | 
 |      maximum         [1]     BaseDistance OPTIONAL } | 
 | BaseDistance ::= INTEGER (0..MAX) | 
 | id-ce-policyConstraints OBJECT IDENTIFIER ::=  { id-ce 36 } | 
 | PolicyConstraints ::= SEQUENCE { | 
 |      requireExplicitPolicy           [0] SkipCerts OPTIONAL, | 
 |      inhibitPolicyMapping            [1] SkipCerts OPTIONAL } | 
 | SkipCerts ::= INTEGER (0..MA[1]     BaseDistance OPTIONAL } | 
 | BaseDistance ::= INTEGER (0..MAX) | 
 | id-ce-policyConstraints OBJECnt       INTEGER (0..MAX) OPTIONAL } | 
 | id-ce-nameConstraints OBJECT IDENTIFIER ::=  { id-ce 30 } | 
 | NameConstraints ::= SEQUENCE { | 
 |      permittedSubtrees`      [0]     GeneralSubtrees OPTIONAL, | 
 |      excludedSubtrees        [1]     GeneralSubtrees OPTIONAL } | 
 | GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree | 
 | GeneralSubtree ::= SEQUENCE { | 
 |      base                    GeneralName, | 
 |      minimum         [0]     BaseDistance DEFAULT 0, | 
 |      maximum         [1]     BaseDistance OPTIONAL } | 
 | BaseDistance ::= INTEGER (0..MAX) | 
 | id-ce-policyConstraints OBJECT IDENTIFIER ::=  { id-ce 36 } | 
 | PolicyConstraints ::= SEQUENCE { | 
 |      requireExplicitPolicy           [0] SkipCerts OPTIONAL, | 
 |      inhibitPolicyMapping            [id-ce-policyConstr  {id-at 10} | 
 | X520OrganizationName ::= DirectoryString | 
 | id-at-organizationalUnitName    Attrib   [1] SkipCerts OPTIONAL } | 
 | SkipCerts ::= INTEGER (0..MA[1]     BaseDistance OPTIONAL } | 
 | BaseDistance ::= INTEGER (0..MAX) | 
 | id-ce-policyConstraints OBJECnt       INTEGER (0..MAX) OPTIONAL } | 
 | id-ce-nameConstraints OBJECT IDENTIFIER ::=  { id-ce 30 } | 
 | NameConstraints ::= SEQUENCE { | 
 |      permittedSubtrees`      [0]     GeneralSubtrees OPTIONAL, | 
 |      excludedSubtrees        [1]     GeneralSubtrees OPTIONAL } | 
 | GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree | 
 | GeneralSubtree ::= SEQUENCE { | 
 |      base                    GeneralName, | 
 |      minimum         [0]     BaseDistance DEFAULT 0, | 
 |      maximum         [1]     BaseDistance OPTIONAL } | 
 | BaseDistance ::= INTEGER (0..MAX) | 
 | id-ce-policyConstraints OBJECT IDENTIFIER ::=  { id-ce 36 } | 
 | PolicyConstraints ::= SEQUENCE { | 
 |      requireExplicitPolicy           [0] SkipCerts OPTIONAL, | 
 |      inhibitPolicyMapping            [1] SkipCerts OPTIONAL } | 
 | SkipCerts ::= INTEGER (0..MAX) | 
 | id-ce-cRLDistributionPoints     OBJEUENCE { | 
 |      base                    GeneralName, | 
 |      minimum         [0]     BaseDistance DEFAULT 0, | 
 |      maximum         [1]     BaseDistance OPTIONAL } | 
 | BaseDistance ::= INTEGER (0..MAX) | 
 | id-ce-policyConstr  {id-at 10} | 
 | X520OrganizationName ::= DirectoryString | 
 | id-at-organizationalUnitName    AuteType   ::=     {id-at 11} | 
 | X520OrganizationalUnitName |