162306a36Sopenharmony_ciPKCS7ContentInfo ::= SEQUENCE {
262306a36Sopenharmony_ci	contentType	ContentType ({ pkcs7_check_content_type }),
362306a36Sopenharmony_ci	content		[0] EXPLICIT SignedData OPTIONAL
462306a36Sopenharmony_ci}
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciContentType ::= OBJECT IDENTIFIER ({ pkcs7_note_OID })
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciSignedData ::= SEQUENCE {
962306a36Sopenharmony_ci	version			INTEGER ({ pkcs7_note_signeddata_version }),
1062306a36Sopenharmony_ci	digestAlgorithms	DigestAlgorithmIdentifiers,
1162306a36Sopenharmony_ci	contentInfo		ContentInfo ({ pkcs7_note_content }),
1262306a36Sopenharmony_ci	certificates		CHOICE {
1362306a36Sopenharmony_ci		certSet		[0] IMPLICIT ExtendedCertificatesAndCertificates,
1462306a36Sopenharmony_ci		certSequence	[2] IMPLICIT Certificates
1562306a36Sopenharmony_ci	} OPTIONAL ({ pkcs7_note_certificate_list }),
1662306a36Sopenharmony_ci	crls CHOICE {
1762306a36Sopenharmony_ci		crlSet		[1] IMPLICIT CertificateRevocationLists,
1862306a36Sopenharmony_ci		crlSequence	[3] IMPLICIT CRLSequence
1962306a36Sopenharmony_ci	} OPTIONAL,
2062306a36Sopenharmony_ci	signerInfos		SignerInfos
2162306a36Sopenharmony_ci}
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciContentInfo ::= SEQUENCE {
2462306a36Sopenharmony_ci	contentType	ContentType ({ pkcs7_note_OID }),
2562306a36Sopenharmony_ci	content		[0] EXPLICIT Data OPTIONAL
2662306a36Sopenharmony_ci}
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciData ::= ANY ({ pkcs7_note_data })
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciDigestAlgorithmIdentifiers ::= CHOICE {
3162306a36Sopenharmony_ci	daSet			SET OF DigestAlgorithmIdentifier,
3262306a36Sopenharmony_ci	daSequence		SEQUENCE OF DigestAlgorithmIdentifier
3362306a36Sopenharmony_ci}
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciDigestAlgorithmIdentifier ::= SEQUENCE {
3662306a36Sopenharmony_ci	algorithm   OBJECT IDENTIFIER ({ pkcs7_note_OID }),
3762306a36Sopenharmony_ci	parameters  ANY OPTIONAL
3862306a36Sopenharmony_ci}
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci--
4162306a36Sopenharmony_ci-- Certificates and certificate lists
4262306a36Sopenharmony_ci--
4362306a36Sopenharmony_ciExtendedCertificatesAndCertificates ::= SET OF ExtendedCertificateOrCertificate
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciExtendedCertificateOrCertificate ::= CHOICE {
4662306a36Sopenharmony_ci  certificate		Certificate,				-- X.509
4762306a36Sopenharmony_ci  extendedCertificate	[0] IMPLICIT ExtendedCertificate	-- PKCS#6
4862306a36Sopenharmony_ci}
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciExtendedCertificate ::= Certificate -- cheating
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciCertificates ::= SEQUENCE OF Certificate
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciCertificateRevocationLists ::= SET OF CertificateList
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciCertificateList ::= SEQUENCE OF Certificate -- This may be defined incorrectly
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciCRLSequence ::= SEQUENCE OF CertificateList
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciCertificate ::= ANY ({ pkcs7_extract_cert }) -- X.509
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci--
6362306a36Sopenharmony_ci-- Signer information
6462306a36Sopenharmony_ci--
6562306a36Sopenharmony_ciSignerInfos ::= CHOICE {
6662306a36Sopenharmony_ci	siSet		SET OF SignerInfo,
6762306a36Sopenharmony_ci	siSequence	SEQUENCE OF SignerInfo
6862306a36Sopenharmony_ci}
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciSignerInfo ::= SEQUENCE {
7162306a36Sopenharmony_ci	version			INTEGER ({ pkcs7_note_signerinfo_version }),
7262306a36Sopenharmony_ci	sid			SignerIdentifier, -- CMS variant, not PKCS#7
7362306a36Sopenharmony_ci	digestAlgorithm		DigestAlgorithmIdentifier ({ pkcs7_sig_note_digest_algo }),
7462306a36Sopenharmony_ci	authenticatedAttributes	CHOICE {
7562306a36Sopenharmony_ci		aaSet		[0] IMPLICIT SetOfAuthenticatedAttribute
7662306a36Sopenharmony_ci					({ pkcs7_sig_note_set_of_authattrs }),
7762306a36Sopenharmony_ci		aaSequence	[2] EXPLICIT SEQUENCE OF AuthenticatedAttribute
7862306a36Sopenharmony_ci			-- Explicit because easier to compute digest on
7962306a36Sopenharmony_ci			-- sequence of attributes and then reuse encoded
8062306a36Sopenharmony_ci			-- sequence in aaSequence.
8162306a36Sopenharmony_ci	} OPTIONAL,
8262306a36Sopenharmony_ci	digestEncryptionAlgorithm
8362306a36Sopenharmony_ci				DigestEncryptionAlgorithmIdentifier ({ pkcs7_sig_note_pkey_algo }),
8462306a36Sopenharmony_ci	encryptedDigest		EncryptedDigest,
8562306a36Sopenharmony_ci	unauthenticatedAttributes CHOICE {
8662306a36Sopenharmony_ci		uaSet		[1] IMPLICIT SET OF UnauthenticatedAttribute,
8762306a36Sopenharmony_ci		uaSequence	[3] IMPLICIT SEQUENCE OF UnauthenticatedAttribute
8862306a36Sopenharmony_ci	} OPTIONAL
8962306a36Sopenharmony_ci} ({ pkcs7_note_signed_info })
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciSignerIdentifier ::= CHOICE {
9262306a36Sopenharmony_ci	-- RFC5652 sec 5.3
9362306a36Sopenharmony_ci	issuerAndSerialNumber IssuerAndSerialNumber,
9462306a36Sopenharmony_ci        subjectKeyIdentifier [0] IMPLICIT SubjectKeyIdentifier
9562306a36Sopenharmony_ci}
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciIssuerAndSerialNumber ::= SEQUENCE {
9862306a36Sopenharmony_ci	issuer			Name ({ pkcs7_sig_note_issuer }),
9962306a36Sopenharmony_ci	serialNumber		CertificateSerialNumber ({ pkcs7_sig_note_serial })
10062306a36Sopenharmony_ci}
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciCertificateSerialNumber ::= INTEGER
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciSubjectKeyIdentifier ::= OCTET STRING ({ pkcs7_sig_note_skid })
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciSetOfAuthenticatedAttribute ::= SET OF AuthenticatedAttribute
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ciAuthenticatedAttribute ::= SEQUENCE {
10962306a36Sopenharmony_ci	type			OBJECT IDENTIFIER ({ pkcs7_note_OID }),
11062306a36Sopenharmony_ci	values			SET OF ANY ({ pkcs7_sig_note_authenticated_attr })
11162306a36Sopenharmony_ci}
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciUnauthenticatedAttribute ::= SEQUENCE {
11462306a36Sopenharmony_ci	type			OBJECT IDENTIFIER,
11562306a36Sopenharmony_ci	values			SET OF ANY
11662306a36Sopenharmony_ci}
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciDigestEncryptionAlgorithmIdentifier ::= SEQUENCE {
11962306a36Sopenharmony_ci	algorithm		OBJECT IDENTIFIER ({ pkcs7_note_OID }),
12062306a36Sopenharmony_ci	parameters		ANY OPTIONAL
12162306a36Sopenharmony_ci}
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ciEncryptedDigest ::= OCTET STRING ({ pkcs7_sig_note_signature })
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci---
12662306a36Sopenharmony_ci--- X.500 Name
12762306a36Sopenharmony_ci---
12862306a36Sopenharmony_ciName ::= SEQUENCE OF RelativeDistinguishedName
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciRelativeDistinguishedName ::= SET OF AttributeValueAssertion
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ciAttributeValueAssertion ::= SEQUENCE {
13362306a36Sopenharmony_ci	attributeType		OBJECT IDENTIFIER ({ pkcs7_note_OID }),
13462306a36Sopenharmony_ci	attributeValue		ANY
13562306a36Sopenharmony_ci}
136