Back to home page

OSCL-LXR

 
 

    


0001 PKCS7ContentInfo ::= SEQUENCE {
0002         contentType     ContentType ({ pkcs7_check_content_type }),
0003         content         [0] EXPLICIT SignedData OPTIONAL
0004 }
0005 
0006 ContentType ::= OBJECT IDENTIFIER ({ pkcs7_note_OID })
0007 
0008 SignedData ::= SEQUENCE {
0009         version                 INTEGER ({ pkcs7_note_signeddata_version }),
0010         digestAlgorithms        DigestAlgorithmIdentifiers,
0011         contentInfo             ContentInfo ({ pkcs7_note_content }),
0012         certificates            CHOICE {
0013                 certSet         [0] IMPLICIT ExtendedCertificatesAndCertificates,
0014                 certSequence    [2] IMPLICIT Certificates
0015         } OPTIONAL ({ pkcs7_note_certificate_list }),
0016         crls CHOICE {
0017                 crlSet          [1] IMPLICIT CertificateRevocationLists,
0018                 crlSequence     [3] IMPLICIT CRLSequence
0019         } OPTIONAL,
0020         signerInfos             SignerInfos
0021 }
0022 
0023 ContentInfo ::= SEQUENCE {
0024         contentType     ContentType ({ pkcs7_note_OID }),
0025         content         [0] EXPLICIT Data OPTIONAL
0026 }
0027 
0028 Data ::= ANY ({ pkcs7_note_data })
0029 
0030 DigestAlgorithmIdentifiers ::= CHOICE {
0031         daSet                   SET OF DigestAlgorithmIdentifier,
0032         daSequence              SEQUENCE OF DigestAlgorithmIdentifier
0033 }
0034 
0035 DigestAlgorithmIdentifier ::= SEQUENCE {
0036         algorithm   OBJECT IDENTIFIER ({ pkcs7_note_OID }),
0037         parameters  ANY OPTIONAL
0038 }
0039 
0040 --
0041 -- Certificates and certificate lists
0042 --
0043 ExtendedCertificatesAndCertificates ::= SET OF ExtendedCertificateOrCertificate
0044 
0045 ExtendedCertificateOrCertificate ::= CHOICE {
0046   certificate           Certificate,                            -- X.509
0047   extendedCertificate   [0] IMPLICIT ExtendedCertificate        -- PKCS#6
0048 }
0049 
0050 ExtendedCertificate ::= Certificate -- cheating
0051 
0052 Certificates ::= SEQUENCE OF Certificate
0053 
0054 CertificateRevocationLists ::= SET OF CertificateList
0055 
0056 CertificateList ::= SEQUENCE OF Certificate -- This may be defined incorrectly
0057 
0058 CRLSequence ::= SEQUENCE OF CertificateList
0059 
0060 Certificate ::= ANY ({ pkcs7_extract_cert }) -- X.509
0061 
0062 --
0063 -- Signer information
0064 --
0065 SignerInfos ::= CHOICE {
0066         siSet           SET OF SignerInfo,
0067         siSequence      SEQUENCE OF SignerInfo
0068 }
0069 
0070 SignerInfo ::= SEQUENCE {
0071         version                 INTEGER ({ pkcs7_note_signerinfo_version }),
0072         sid                     SignerIdentifier, -- CMS variant, not PKCS#7
0073         digestAlgorithm         DigestAlgorithmIdentifier ({ pkcs7_sig_note_digest_algo }),
0074         authenticatedAttributes CHOICE {
0075                 aaSet           [0] IMPLICIT SetOfAuthenticatedAttribute
0076                                         ({ pkcs7_sig_note_set_of_authattrs }),
0077                 aaSequence      [2] EXPLICIT SEQUENCE OF AuthenticatedAttribute
0078                         -- Explicit because easier to compute digest on
0079                         -- sequence of attributes and then reuse encoded
0080                         -- sequence in aaSequence.
0081         } OPTIONAL,
0082         digestEncryptionAlgorithm
0083                                 DigestEncryptionAlgorithmIdentifier ({ pkcs7_sig_note_pkey_algo }),
0084         encryptedDigest         EncryptedDigest,
0085         unauthenticatedAttributes CHOICE {
0086                 uaSet           [1] IMPLICIT SET OF UnauthenticatedAttribute,
0087                 uaSequence      [3] IMPLICIT SEQUENCE OF UnauthenticatedAttribute
0088         } OPTIONAL
0089 } ({ pkcs7_note_signed_info })
0090 
0091 SignerIdentifier ::= CHOICE {
0092         -- RFC5652 sec 5.3
0093         issuerAndSerialNumber IssuerAndSerialNumber,
0094         subjectKeyIdentifier [0] IMPLICIT SubjectKeyIdentifier
0095 }
0096 
0097 IssuerAndSerialNumber ::= SEQUENCE {
0098         issuer                  Name ({ pkcs7_sig_note_issuer }),
0099         serialNumber            CertificateSerialNumber ({ pkcs7_sig_note_serial })
0100 }
0101 
0102 CertificateSerialNumber ::= INTEGER
0103 
0104 SubjectKeyIdentifier ::= OCTET STRING ({ pkcs7_sig_note_skid })
0105 
0106 SetOfAuthenticatedAttribute ::= SET OF AuthenticatedAttribute
0107 
0108 AuthenticatedAttribute ::= SEQUENCE {
0109         type                    OBJECT IDENTIFIER ({ pkcs7_note_OID }),
0110         values                  SET OF ANY ({ pkcs7_sig_note_authenticated_attr })
0111 }
0112 
0113 UnauthenticatedAttribute ::= SEQUENCE {
0114         type                    OBJECT IDENTIFIER,
0115         values                  SET OF ANY
0116 }
0117 
0118 DigestEncryptionAlgorithmIdentifier ::= SEQUENCE {
0119         algorithm               OBJECT IDENTIFIER ({ pkcs7_note_OID }),
0120         parameters              ANY OPTIONAL
0121 }
0122 
0123 EncryptedDigest ::= OCTET STRING ({ pkcs7_sig_note_signature })
0124 
0125 ---
0126 --- X.500 Name
0127 ---
0128 Name ::= SEQUENCE OF RelativeDistinguishedName
0129 
0130 RelativeDistinguishedName ::= SET OF AttributeValueAssertion
0131 
0132 AttributeValueAssertion ::= SEQUENCE {
0133         attributeType           OBJECT IDENTIFIER ({ pkcs7_note_OID }),
0134         attributeValue          ANY
0135 }