Linux 4.19.133
[linux/fpc-iii.git] / crypto / asymmetric_keys / pkcs7.asn1
blob1eca740b816ace4680870df9e3a7885b8ba47538
1 PKCS7ContentInfo ::= SEQUENCE {
2         contentType     ContentType ({ pkcs7_check_content_type }),
3         content         [0] EXPLICIT SignedData OPTIONAL
6 ContentType ::= OBJECT IDENTIFIER ({ pkcs7_note_OID })
8 SignedData ::= SEQUENCE {
9         version                 INTEGER ({ pkcs7_note_signeddata_version }),
10         digestAlgorithms        DigestAlgorithmIdentifiers,
11         contentInfo             ContentInfo ({ pkcs7_note_content }),
12         certificates            CHOICE {
13                 certSet         [0] IMPLICIT ExtendedCertificatesAndCertificates,
14                 certSequence    [2] IMPLICIT Certificates
15         } OPTIONAL ({ pkcs7_note_certificate_list }),
16         crls CHOICE {
17                 crlSet          [1] IMPLICIT CertificateRevocationLists,
18                 crlSequence     [3] IMPLICIT CRLSequence
19         } OPTIONAL,
20         signerInfos             SignerInfos
23 ContentInfo ::= SEQUENCE {
24         contentType     ContentType ({ pkcs7_note_OID }),
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
63 -- Signer information
65 SignerInfos ::= CHOICE {
66         siSet           SET OF SignerInfo,
67         siSequence      SEQUENCE OF SignerInfo
70 SignerInfo ::= SEQUENCE {
71         version                 INTEGER ({ pkcs7_note_signerinfo_version }),
72         sid                     SignerIdentifier, -- CMS variant, not PKCS#7
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.
81         } OPTIONAL,
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
88         } OPTIONAL
89 } ({ pkcs7_note_signed_info })
91 SignerIdentifier ::= CHOICE {
92         -- RFC5652 sec 5.3
93         issuerAndSerialNumber IssuerAndSerialNumber,
94         subjectKeyIdentifier [0] IMPLICIT SubjectKeyIdentifier
97 IssuerAndSerialNumber ::= SEQUENCE {
98         issuer                  Name ({ pkcs7_sig_note_issuer }),
99         serialNumber            CertificateSerialNumber ({ pkcs7_sig_note_serial })
102 CertificateSerialNumber ::= INTEGER
104 SubjectKeyIdentifier ::= OCTET STRING ({ pkcs7_sig_note_skid })
106 SetOfAuthenticatedAttribute ::= SET OF AuthenticatedAttribute
108 AuthenticatedAttribute ::= SEQUENCE {
109         type                    OBJECT IDENTIFIER ({ pkcs7_note_OID }),
110         values                  SET OF ANY ({ pkcs7_sig_note_authenticated_attr })
113 UnauthenticatedAttribute ::= SEQUENCE {
114         type                    OBJECT IDENTIFIER,
115         values                  SET OF ANY
118 DigestEncryptionAlgorithmIdentifier ::= SEQUENCE {
119         algorithm               OBJECT IDENTIFIER ({ pkcs7_note_OID }),
120         parameters              ANY OPTIONAL
123 EncryptedDigest ::= OCTET STRING ({ pkcs7_sig_note_signature })
126 --- X.500 Name
128 Name ::= SEQUENCE OF RelativeDistinguishedName
130 RelativeDistinguishedName ::= SET OF AttributeValueAssertion
132 AttributeValueAssertion ::= SEQUENCE {
133         attributeType           OBJECT IDENTIFIER ({ pkcs7_note_OID }),
134         attributeValue          ANY