Cryptographic Message Syntax (CMS)
|
CMS (RFC 3852)
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) }
|
|
|
|
|
|
|
|
|
|
| id-ct-contentInfo | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
smime(16) ct(1) 6
}
| |
|
| ContentInfo | ::= |
SEQUENCE {
|
|
| contentType |
ContentType,
|
| content | [0] EXPLICIT ANY DEFINED BY
contentType }
| |
|
|
|
|
|
|
|
|
|
|
|
| id-data | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1
}
| |
|
|
|
|
|
|
|
|
|
|
|
| id-signedData | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2
}
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
| |
|
|
|
|
|
|
|
|
|
| id-envelopedData | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3
}
| |
|
| 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 {
|
|
| issuerAndSerialNumber |
IssuerAndSerialNumber,
|
| subjectKeyIdentifier |
[0] SubjectKeyIdentifier,
|
| originatorKey |
[1] OriginatorPublicKey }
| |
|
| OriginatorPublicKey | ::= |
SEQUENCE {
|
|
|
|
| RecipientEncryptedKeys | ::= |
SEQUENCE OF
RecipientEncryptedKey
| |
|
| RecipientEncryptedKey | ::= |
SEQUENCE {
|
|
| rid |
KeyAgreeRecipientIdentifier,
|
| encryptedKey |
EncryptedKey }
| |
|
| KeyAgreeRecipientIdentifier | ::= |
CHOICE {
|
|
|
|
| RecipientKeyIdentifier | ::= |
SEQUENCE {
|
|
| subjectKeyIdentifier |
SubjectKeyIdentifier,
|
| date |
GeneralizedTime OPTIONAL,
|
| other |
OtherKeyAttribute OPTIONAL }
| |
|
| 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 }
| |
|
|
|
|
|
|
|
|
|
| id-digestedData | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs7(7) 5
}
| |
|
| DigestedData | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| id-encryptedData | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs7(7) 6
}
| |
|
| EncryptedData | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
| id-ct-authData | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
smime(16) ct(1) 2
}
| |
|
| AuthenticatedData | ::= |
SEQUENCE {
|
|
|
|
| AuthAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
| UnauthAttributes | ::= |
SET SIZE (1..MAX) OF
Attribute
| |
|
| MessageAuthenticationCode | ::= |
OCTET STRING
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v0(0),
v1(1),
v2(2),
v3(3),
v4(4),
v5(5) }
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| CertificateSet | ::= |
SET OF CertificateChoices
| |
|
| CertificateChoices | ::= |
CHOICE {
|
|
| certificate |
Certificate,
|
| extendedCertificate |
[0] IMPLICIT ExtendedCertificate, -- Obsolete
|
| v1AttrCert |
[1] IMPLICIT AttributeCertificateV1, -- Obsolete
|
| v2AttrCert |
[2] IMPLICIT AttributeCertificateV2,
|
| other |
[3] IMPLICIT OtherCertificateFormat }
| |
|
| AttributeCertificateV2 | ::= |
SET OF AttributeCertificate
| |
|
| OtherCertificateFormat | ::= |
SEQUENCE {
|
|
| otherCertFormat |
OBJECT IDENTIFIER,
|
| otherCert |
ANY DEFINED BY otherCertFormat }
| |
|
|
|
|
|
|
|
|
|
| RevocationInfoChoices | ::= |
SET OF RevocationInfoChoice
| |
|
| RevocationInfoChoice | ::= |
CHOICE {
|
|
|
|
| OtherRevocationInfoFormat | ::= |
SEQUENCE {
|
|
| otherRevInfoFormat |
OBJECT IDENTIFIER,
|
| otherRevInfo |
ANY DEFINED BY otherRevInfoFormat }
| |
|
|
|
|
|
|
|
|
|
| IssuerAndSerialNumber | ::= |
SEQUENCE {
|
|
|
|
|
|
|
|
|
|
|
|
| UserKeyingMaterial | ::= |
OCTET STRING
|
|
|
|
|
|
|
|
|
|
| OtherKeyAttribute | ::= |
SEQUENCE {
|
|
| keyAttrId |
OBJECT IDENTIFIER,
|
| keyAttr |
ANY DEFINED BY keyAttrId }
| |
|
|
|
|
|
|
|
|
|
|
|
| attrType |
OBJECT IDENTIFIER,
|
| attrValues |
SET OF AttributeValue }
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
| id-contentType | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs9(9) 3
}
| |
|
| 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.
|
|
|
| id-messageDigest | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4
}
| |
|
|
|
| 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.
|
|
|
| id-signingTime | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs9(9) 5
}
| |
|
|
|
|
|
|
|
| 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.
|
|
|
| id-countersignature | OBJECT IDENTIFIER ::= {
iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs9(9) 6
}
| |
|
|
|
|
|
|
|
|
|
|
|
|
|