136 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
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
 | 
						|
}
 |