| PªX1 { } | 
 | 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            OPTIONAL, | 
 |       authorityCertIssuer       [1] GeneralNames             OPTIONAL, | 
 |       authorityCertSerialNumber [2] CertificateSerialNumber  OPTIONAL } | 
 |     -- authorityCertIssuer and authorityCertSerialNumber shall0both | 
 |     -- be present or both be absgent | 
 | KeyIdentifier ::= OCTET STRING | 
 | id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::=  { id-ce 14 } | 
 | SubjectKeyIdentifier ::= KeyIdentifier | 
 | id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 } | 
 | KeyUsage ::= BIT STRING { | 
 |      digitalSignature        (0), | 
 |      nonRepudiation          (1), | 
 |      keyEncipherment         (2), | 
 |      dataEncipherment        (3), | 
 |      keyAgreement            (4), | 
 |      keyCertSign             (5), | 
 |      cRLSign                 (6), | 
 |      encipherOnly            (7), | 
 |      decipherOnly            (8) } | 
 | id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::=  { id-ce 16 } | 
 | PrivateKeyUsagePeriod ::= SEQUENCE { | 
 |      notBefore       [0]     GeneralizedTime OPTIONAL, | 
 |      notAfter        [1]     GeneralizedTime OPTIONAL } | 
 |      -- ei|her notBefore or notAfter shall be present | 
 | id-ce-certificatePolicies OBJECT IDENTIFIER ::=  { id-ce 32 } | 
 | CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation | 
 | PolicyInformation ::= SEQUENCE { | 
 |      policyIdentifier   CertPolicyId, | 
 |      policyQualifiers   SEQUENCE SIZE (1..MAX) OF | 
 |              PolicyQualifierInfo OPTIONAL } | 
 | CertPolicyId ::= OBJECT IDENTIFIER | 
 | PolicyQualifierInfo ::= SEQUENCE { | 
 |        policyQualifierId  PolicyQualifierId, | 
 |        qualifier        ANY DEFINED BY policyQualifierId } | 
 | PolicyQualifierId ::= | 
 |     OBJECT IDENTIFIER  -- ( id-qt-cps | id-qt-unotice ) | 
 | CPSuri ::= IA5String | 
 | UserNotice ::= SEQUENCE { | 
 |      noticeRef        NoticeReference OPTIONAL, | 
 |      explicitText     DisplayText OPTIONAL} | 
 | NoticeReference ::= SEQUENCE { | 
 |      organization     DisplayText, | 
 |      noticeNumbers    SEQUENCE OF INTEGER } | 
 | DisplayText ::= CHOICE { | 
 |      visibleString    VisibleString  (SIZE (1..200)), | 
 |      bmpString        BMPString      (SIZE (1..200)), | 
 |      utf8String           IA5String, | 
 |      dNSName                         [2]     IA5String, | 
 |      x400Address                     [3]     ORAddress, | 
 |      directoryName                   [4]     EXPLICIT RDNSequence, --Name, | 
 |      ediPartyName                    [5] String               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, | 
 |  sUpdate                   GeneralizedTime, | 
 |    nextUpdate           [0]     EXPLICIT GeneralizedTime OPTIONAL, | 
 |    singleExtensions     [1]     EXPLICIT Extensions OPTIONAL } | 
 | RevokedInfo ::= SEQUENCE { | 
 |     revocationTime              GeneralizedTime, | 
 |     revocationReason    [0]     EXPLICIT CRLReason OPTIONAL } | 
 | UnknownInfo ::= NULL -- this can be replaced with an enumeration | 
 | END |