1 PKCS7ContentInfo ::= SEQUENCE {
2 contentType ContentType,
3 content [0] EXPLICIT SignedData OPTIONAL
6 ContentType ::= OBJECT IDENTIFIER ({ pkcs7_note_OID })
8 SignedData ::= SEQUENCE {
10 digestAlgorithms DigestAlgorithmIdentifiers,
11 contentInfo ContentInfo,
13 certSet [0] IMPLICIT ExtendedCertificatesAndCertificates,
14 certSequence [2] IMPLICIT Certificates
15 } OPTIONAL ({ pkcs7_note_certificate_list }),
17 crlSet [1] IMPLICIT CertificateRevocationLists,
18 crlSequence [3] IMPLICIT CRLSequence
20 signerInfos SignerInfos
23 ContentInfo ::= SEQUENCE {
24 contentType ContentType,
25 content [0] EXPLICIT Data OPTIONAL
28 Data ::= ANY ({ pkcs7_note_data })
30 DigestAlgorithmIdentifiers ::= CHOICE {
31 daSet SET OF DigestAlgorithmIdentifier,
32 daSequence SEQUENCE OF DigestAlgorithmIdentifier
35 DigestAlgorithmIdentifier ::= SEQUENCE {
36 algorithm OBJECT IDENTIFIER ({ pkcs7_note_OID }),
37 parameters ANY OPTIONAL
41 -- Certificates and certificate lists
43 ExtendedCertificatesAndCertificates ::= SET OF ExtendedCertificateOrCertificate
45 ExtendedCertificateOrCertificate ::= CHOICE {
46 certificate Certificate, -- X.509
47 extendedCertificate [0] IMPLICIT ExtendedCertificate -- PKCS#6
50 ExtendedCertificate ::= Certificate -- cheating
52 Certificates ::= SEQUENCE OF Certificate
54 CertificateRevocationLists ::= SET OF CertificateList
56 CertificateList ::= SEQUENCE OF Certificate -- This may be defined incorrectly
58 CRLSequence ::= SEQUENCE OF CertificateList
60 Certificate ::= ANY ({ pkcs7_extract_cert }) -- X.509
65 SignerInfos ::= CHOICE {
66 siSet SET OF SignerInfo,
67 siSequence SEQUENCE OF SignerInfo
70 SignerInfo ::= SEQUENCE {
72 issuerAndSerialNumber IssuerAndSerialNumber,
73 digestAlgorithm DigestAlgorithmIdentifier ({ pkcs7_sig_note_digest_algo }),
74 authenticatedAttributes CHOICE {
75 aaSet [0] IMPLICIT SetOfAuthenticatedAttribute
76 ({ pkcs7_sig_note_set_of_authattrs }),
77 aaSequence [2] EXPLICIT SEQUENCE OF AuthenticatedAttribute
78 -- Explicit because easier to compute digest on
79 -- sequence of attributes and then reuse encoded
80 -- sequence in aaSequence.
82 digestEncryptionAlgorithm
83 DigestEncryptionAlgorithmIdentifier ({ pkcs7_sig_note_pkey_algo }),
84 encryptedDigest EncryptedDigest,
85 unauthenticatedAttributes CHOICE {
86 uaSet [1] IMPLICIT SET OF UnauthenticatedAttribute,
87 uaSequence [3] IMPLICIT SEQUENCE OF UnauthenticatedAttribute
89 } ({ pkcs7_note_signed_info })
91 IssuerAndSerialNumber ::= SEQUENCE {
92 issuer Name ({ pkcs7_sig_note_issuer }),
93 serialNumber CertificateSerialNumber ({ pkcs7_sig_note_serial })
96 CertificateSerialNumber ::= INTEGER
98 SetOfAuthenticatedAttribute ::= SET OF AuthenticatedAttribute
100 AuthenticatedAttribute ::= SEQUENCE {
101 type OBJECT IDENTIFIER ({ pkcs7_note_OID }),
102 values SET OF ANY ({ pkcs7_sig_note_authenticated_attr })
105 UnauthenticatedAttribute ::= SEQUENCE {
106 type OBJECT IDENTIFIER ({ pkcs7_note_OID }),
110 DigestEncryptionAlgorithmIdentifier ::= SEQUENCE {
111 algorithm OBJECT IDENTIFIER ({ pkcs7_note_OID }),
112 parameters ANY OPTIONAL
115 EncryptedDigest ::= OCTET STRING ({ pkcs7_sig_note_signature })
120 Name ::= SEQUENCE OF RelativeDistinguishedName
122 RelativeDistinguishedName ::= SET OF AttributeValueAssertion
124 AttributeValueAssertion ::= SEQUENCE {
125 attributeType OBJECT IDENTIFIER ({ pkcs7_note_OID }),