Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | PKCS7ContentInfo ::= SEQUENCE { contentType ContentType ({ pkcs7_check_content_type }), content [0] EXPLICIT SignedData OPTIONAL } ContentType ::= OBJECT IDENTIFIER ({ pkcs7_note_OID }) SignedData ::= SEQUENCE { version INTEGER ({ pkcs7_note_signeddata_version }), digestAlgorithms DigestAlgorithmIdentifiers, contentInfo ContentInfo ({ pkcs7_note_content }), certificates CHOICE { certSet [0] IMPLICIT ExtendedCertificatesAndCertificates, certSequence [2] IMPLICIT Certificates } OPTIONAL ({ pkcs7_note_certificate_list }), crls CHOICE { crlSet [1] IMPLICIT CertificateRevocationLists, crlSequence [3] IMPLICIT CRLSequence } OPTIONAL, signerInfos SignerInfos } ContentInfo ::= SEQUENCE { contentType ContentType ({ pkcs7_note_OID }), content [0] EXPLICIT Data OPTIONAL } Data ::= ANY ({ pkcs7_note_data }) DigestAlgorithmIdentifiers ::= CHOICE { daSet SET OF DigestAlgorithmIdentifier, daSequence SEQUENCE OF DigestAlgorithmIdentifier } DigestAlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER ({ pkcs7_note_OID }), parameters ANY OPTIONAL } -- -- Certificates and certificate lists -- ExtendedCertificatesAndCertificates ::= SET OF ExtendedCertificateOrCertificate ExtendedCertificateOrCertificate ::= CHOICE { certificate Certificate, -- X.509 extendedCertificate [0] IMPLICIT ExtendedCertificate -- PKCS#6 } ExtendedCertificate ::= Certificate -- cheating Certificates ::= SEQUENCE OF Certificate CertificateRevocationLists ::= SET OF CertificateList CertificateList ::= SEQUENCE OF Certificate -- This may be defined incorrectly CRLSequence ::= SEQUENCE OF CertificateList Certificate ::= ANY ({ pkcs7_extract_cert }) -- X.509 -- -- Signer information -- SignerInfos ::= CHOICE { siSet SET OF SignerInfo, siSequence SEQUENCE OF SignerInfo } SignerInfo ::= SEQUENCE { version INTEGER ({ pkcs7_note_signerinfo_version }), sid SignerIdentifier, -- CMS variant, not PKCS#7 digestAlgorithm DigestAlgorithmIdentifier ({ pkcs7_sig_note_digest_algo }), authenticatedAttributes CHOICE { aaSet [0] IMPLICIT SetOfAuthenticatedAttribute ({ pkcs7_sig_note_set_of_authattrs }), aaSequence [2] EXPLICIT SEQUENCE OF AuthenticatedAttribute -- Explicit because easier to compute digest on -- sequence of attributes and then reuse encoded -- sequence in aaSequence. } OPTIONAL, digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier ({ pkcs7_sig_note_pkey_algo }), encryptedDigest EncryptedDigest, unauthenticatedAttributes CHOICE { uaSet [1] IMPLICIT SET OF UnauthenticatedAttribute, uaSequence [3] IMPLICIT SEQUENCE OF UnauthenticatedAttribute } OPTIONAL } ({ pkcs7_note_signed_info }) SignerIdentifier ::= CHOICE { -- RFC5652 sec 5.3 issuerAndSerialNumber IssuerAndSerialNumber, subjectKeyIdentifier [0] IMPLICIT SubjectKeyIdentifier } IssuerAndSerialNumber ::= SEQUENCE { issuer Name ({ pkcs7_sig_note_issuer }), serialNumber CertificateSerialNumber ({ pkcs7_sig_note_serial }) } CertificateSerialNumber ::= INTEGER SubjectKeyIdentifier ::= OCTET STRING ({ pkcs7_sig_note_skid }) SetOfAuthenticatedAttribute ::= SET OF AuthenticatedAttribute AuthenticatedAttribute ::= SEQUENCE { type OBJECT IDENTIFIER ({ pkcs7_note_OID }), values SET OF ANY ({ pkcs7_sig_note_authenticated_attr }) } UnauthenticatedAttribute ::= SEQUENCE { type OBJECT IDENTIFIER, values SET OF ANY } DigestEncryptionAlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER ({ pkcs7_note_OID }), parameters ANY OPTIONAL } EncryptedDigest ::= OCTET STRING ({ pkcs7_sig_note_signature }) --- --- X.500 Name --- Name ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeValueAssertion AttributeValueAssertion ::= SEQUENCE { attributeType OBJECT IDENTIFIER ({ pkcs7_note_OID }), attributeValue ANY } |