|
|
|
|
CMS (RFC 5652)
is used to digitally sign, digest, authenticate, or encrypt arbitrary
message content. |
|
|
|
|
This page reports the CMS ASN.1 syntax as defined in the module identified by:
CryptographicMessageSyntax2004
{ iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) modules(0) cms-2004(24) }
|
|
|
|
|
|
|
|
|
|
|
|
| ContentInfo | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| EncapsulatedContentInfo | ::= |
SEQUENCE {
|
|
| eContentType |
ContentType,
|
| eContent |
[0] EXPLICIT OCTET STRING OPTIONAL }
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| SignerIdentifier | ::= |
CHOICE {
|
|
|
|
| SignedAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
| UnsignedAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
| SignatureValue | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
|
|
|
| EnvelopedData | ::= |
SEQUENCE {
|
|
|
|
|
|
| UnprotectedAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
|
|
|
|
|
|
|
|
| OriginatorInfo | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
| EncryptedContentInfo | ::= |
SEQUENCE {
|
|
|
|
| EncryptedContent | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
|
| RecipientInfo | ::= |
CHOICE {
|
|
|
|
| EncryptedKey | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
|
| KeyTransRecipientInfo | ::= |
SEQUENCE {
|
|
|
|
| RecipientIdentifier | ::= |
CHOICE {
|
|
|
|
|
|
|
|
|
|
|
|
| KeyAgreeRecipientInfo | ::= |
SEQUENCE {
|
|
|
|
| OriginatorIdentifierOrKey | ::= |
CHOICE {
|
|
|
|
| OriginatorPublicKey | ::= |
SEQUENCE {
|
|
|
|
|
|
| RecipientEncryptedKey | ::= |
SEQUENCE {
|
|
|
|
| KeyAgreeRecipientIdentifier | ::= |
CHOICE {
|
|
|
|
| RecipientKeyIdentifier | ::= |
SEQUENCE {
|
|
|
|
| SubjectKeyIdentifier | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
|
| KEKRecipientInfo | ::= |
SEQUENCE {
|
|
|
|
| KEKIdentifier | ::= |
SEQUENCE {
|
|
| keyIdentifier |
OCTET STRING,
|
| date |
GeneralizedTime OPTIONAL,
|
| other |
OtherKeyAttribute OPTIONAL }
| |
|
|
|
|
|
|
|
|
|
| PasswordRecipientInfo | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
| OtherRecipientInfo | ::= |
SEQUENCE {
|
|
| oriType |
OBJECT IDENTIFIER,
|
| oriValue |
ANY DEFINED BY oriType }
| |
|
|
|
|
|
|
|
|
|
|
|
| DigestedData | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| EncryptedData | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| AuthenticatedData | ::= |
SEQUENCE {
|
|
|
|
| AuthAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
| UnauthAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
| MessageAuthenticationCode | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| CertificateChoices | ::= |
CHOICE {
|
|
|
|
|
|
| OtherCertificateFormat | ::= |
SEQUENCE {
|
|
| otherCertFormat |
OBJECT IDENTIFIER,
|
| otherCert |
ANY DEFINED BY otherCertFormat }
| |
|
|
|
|
|
|
|
|
|
|
|
| RevocationInfoChoice | ::= |
CHOICE {
|
|
|
|
| OtherRevocationInfoFormat | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
| IssuerAndSerialNumber | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
| UserKeyingMaterial | ::= |
OCTET STRING
|
|
|
|
|
|
|
|
|
|
| OtherKeyAttribute | ::= |
SEQUENCE {
|
|
| keyAttrId |
OBJECT IDENTIFIER,
|
| keyAttr |
ANY DEFINED BY keyAttrId }
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The content-type attribute type specifies the content type of the
ContentInfo within signed-data or authenticated-data. The content-
type attribute type MUST be present whenever signed attributes are
present in signed-data or authenticated attributes present in
authenticated-data. The content-type attribute value MUST match the
encapContentInfo eContentType value in the signed-data or
authenticated-data.
The content-type attribute MUST be a signed attribute or an
authenticated attribute.
|
|
|
|
|
| ContentType | ::= |
OBJECT IDENTIFIER
| |
|
|
|
|
|
|
|
|
The message-digest attribute type specifies the message digest of the
encapContentInfo eContent OCTET STRING being signed in signed-data
or authenticated in authenticated-data.
For signed-data, the message digest is computed using the
signer's message digest algorithm. For authenticated-data, the
message digest is computed using the originator's message digest
algorithm.
Within signed-data, the message-digest signed attribute type MUST be
present when there are any signed attributes present. Within
authenticated-data, the message-digest authenticated attribute type
MUST be present when there are any authenticated attributes present.
The message-digest attribute MUST be a signed attribute or an
authenticated attribute.
|
|
|
|
|
|
|
| MessageDigest | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
The signing-time attribute type specifies the time at which the
signer (purportedly) performed the signing process. It is intended for use in signed-data.
The signing-time attribute type MUST be a signed attribute or an
authenticated attribute.
|
|
|
|
|
|
|
|
|
|
|
| utcTime |
UTCTime
|
| generalTime |
GeneralizedTime }
| |
|
|
|
|
|
|
|
|
The countersignature attribute type specifies one or more signatures
on the contents octets of the signature OCTET STRING in a SignerInfo
value of the signed-data. Thus, it countersigns (signs in serial) another signature.
The countersignature attribute type MUST be an unsigned attribute.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|