cms.asn1 revision 226031
155714Skris-- From RFC 3369 -- 255714Skris-- $Id$ -- 355714Skris 455714SkrisCMS DEFINITIONS ::= BEGIN 555714Skris 655714SkrisIMPORTS CertificateSerialNumber, AlgorithmIdentifier, Name, 755714Skris Attribute, Certificate, SubjectKeyIdentifier FROM rfc2459 855714Skris heim_any, heim_any_set FROM heim; 955714Skris 1055714Skrisid-pkcs7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) 1155714Skris us(840) rsadsi(113549) pkcs(1) pkcs7(7) } 1255714Skris 1355714Skrisid-pkcs7-data OBJECT IDENTIFIER ::= { id-pkcs7 1 } 1455714Skrisid-pkcs7-signedData OBJECT IDENTIFIER ::= { id-pkcs7 2 } 1555714Skrisid-pkcs7-envelopedData OBJECT IDENTIFIER ::= { id-pkcs7 3 } 1655714Skrisid-pkcs7-signedAndEnvelopedData OBJECT IDENTIFIER ::= { id-pkcs7 4 } 1755714Skrisid-pkcs7-digestedData OBJECT IDENTIFIER ::= { id-pkcs7 5 } 1855714Skrisid-pkcs7-encryptedData OBJECT IDENTIFIER ::= { id-pkcs7 6 } 1955714Skris 2055714SkrisCMSVersion ::= INTEGER { 2155714Skris CMSVersion_v0(0), 2255714Skris CMSVersion_v1(1), 2355714Skris CMSVersion_v2(2), 2455714Skris CMSVersion_v3(3), 2555714Skris CMSVersion_v4(4) 2655714Skris} 2755714Skris 2855714SkrisDigestAlgorithmIdentifier ::= AlgorithmIdentifier 2955714SkrisDigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier 3055714SkrisSignatureAlgorithmIdentifier ::= AlgorithmIdentifier 3155714Skris 3255714SkrisContentType ::= OBJECT IDENTIFIER 3355714SkrisMessageDigest ::= OCTET STRING 3455714Skris 3555714SkrisContentInfo ::= SEQUENCE { 3655714Skris contentType ContentType, 3755714Skris content [0] EXPLICIT heim_any OPTIONAL -- DEFINED BY contentType 3855714Skris} 3955714Skris 4055714SkrisEncapsulatedContentInfo ::= SEQUENCE { 4155714Skris eContentType ContentType, 4255714Skris eContent [0] EXPLICIT OCTET STRING OPTIONAL 4355714Skris} 4455714Skris 4555714SkrisCertificateSet ::= SET OF heim_any 4655714Skris 4755714SkrisCertificateList ::= Certificate 4855714Skris 4955714SkrisCertificateRevocationLists ::= SET OF CertificateList 5055714Skris 5155714SkrisIssuerAndSerialNumber ::= SEQUENCE { 5255714Skris issuer Name, 5355714Skris serialNumber CertificateSerialNumber 5455714Skris} 5555714Skris 56-- RecipientIdentifier is same as SignerIdentifier, 57-- lets glue them togheter and save some bytes and share code for them 58 59CMSIdentifier ::= CHOICE { 60 issuerAndSerialNumber IssuerAndSerialNumber, 61 subjectKeyIdentifier [0] SubjectKeyIdentifier 62} 63 64SignerIdentifier ::= CMSIdentifier 65RecipientIdentifier ::= CMSIdentifier 66 67--- CMSAttributes are the combined UnsignedAttributes and SignedAttributes 68--- to store space and share code 69 70CMSAttributes ::= SET OF Attribute -- SIZE (1..MAX) 71 72SignatureValue ::= OCTET STRING 73 74SignerInfo ::= SEQUENCE { 75 version CMSVersion, 76 sid SignerIdentifier, 77 digestAlgorithm DigestAlgorithmIdentifier, 78 signedAttrs [0] IMPLICIT -- CMSAttributes -- 79 SET OF Attribute OPTIONAL, 80 signatureAlgorithm SignatureAlgorithmIdentifier, 81 signature SignatureValue, 82 unsignedAttrs [1] IMPLICIT -- CMSAttributes -- 83 SET OF Attribute OPTIONAL 84} 85 86SignerInfos ::= SET OF SignerInfo 87 88SignedData ::= SEQUENCE { 89 version CMSVersion, 90 digestAlgorithms DigestAlgorithmIdentifiers, 91 encapContentInfo EncapsulatedContentInfo, 92 certificates [0] IMPLICIT -- CertificateSet -- 93 SET OF heim_any OPTIONAL, 94 crls [1] IMPLICIT -- CertificateRevocationLists -- 95 heim_any OPTIONAL, 96 signerInfos SignerInfos 97} 98 99OriginatorInfo ::= SEQUENCE { 100 certs [0] IMPLICIT -- CertificateSet -- 101 SET OF heim_any OPTIONAL, 102 crls [1] IMPLICIT --CertificateRevocationLists -- 103 heim_any OPTIONAL 104} 105 106KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier 107ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier 108 109EncryptedKey ::= OCTET STRING 110 111KeyTransRecipientInfo ::= SEQUENCE { 112 version CMSVersion, -- always set to 0 or 2 113 rid RecipientIdentifier, 114 keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, 115 encryptedKey EncryptedKey 116} 117 118RecipientInfo ::= KeyTransRecipientInfo 119 120RecipientInfos ::= SET OF RecipientInfo 121 122EncryptedContent ::= OCTET STRING 123 124EncryptedContentInfo ::= SEQUENCE { 125 contentType ContentType, 126 contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, 127 encryptedContent [0] IMPLICIT OCTET STRING OPTIONAL 128} 129 130UnprotectedAttributes ::= SET OF Attribute -- SIZE (1..MAX) 131 132CMSEncryptedData ::= SEQUENCE { 133 version CMSVersion, 134 encryptedContentInfo EncryptedContentInfo, 135 unprotectedAttrs [1] IMPLICIT -- UnprotectedAttributes -- 136 heim_any OPTIONAL 137} 138 139EnvelopedData ::= SEQUENCE { 140 version CMSVersion, 141 originatorInfo [0] IMPLICIT -- OriginatorInfo -- heim_any OPTIONAL, 142 recipientInfos RecipientInfos, 143 encryptedContentInfo EncryptedContentInfo, 144 unprotectedAttrs [1] IMPLICIT -- UnprotectedAttributes -- 145 heim_any OPTIONAL 146} 147 148-- Data ::= OCTET STRING 149 150CMSRC2CBCParameter ::= SEQUENCE { 151 rc2ParameterVersion INTEGER (0..4294967295), 152 iv OCTET STRING -- exactly 8 octets 153} 154 155CMSCBCParameter ::= OCTET STRING 156 157END 158