1*ebfedea0SLionel Sambuc-- From RFC 3369 -- 2*ebfedea0SLionel Sambuc-- Id -- 3*ebfedea0SLionel Sambuc 4*ebfedea0SLionel SambucCMS DEFINITIONS ::= BEGIN 5*ebfedea0SLionel Sambuc 6*ebfedea0SLionel SambucIMPORTS CertificateSerialNumber, AlgorithmIdentifier, Name, 7*ebfedea0SLionel Sambuc Attribute, Certificate, SubjectKeyIdentifier FROM rfc2459 8*ebfedea0SLionel Sambuc heim_any, heim_any_set FROM heim; 9*ebfedea0SLionel Sambuc 10*ebfedea0SLionel Sambucid-pkcs7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) 11*ebfedea0SLionel Sambuc us(840) rsadsi(113549) pkcs(1) pkcs7(7) } 12*ebfedea0SLionel Sambuc 13*ebfedea0SLionel Sambucid-pkcs7-data OBJECT IDENTIFIER ::= { id-pkcs7 1 } 14*ebfedea0SLionel Sambucid-pkcs7-signedData OBJECT IDENTIFIER ::= { id-pkcs7 2 } 15*ebfedea0SLionel Sambucid-pkcs7-envelopedData OBJECT IDENTIFIER ::= { id-pkcs7 3 } 16*ebfedea0SLionel Sambucid-pkcs7-signedAndEnvelopedData OBJECT IDENTIFIER ::= { id-pkcs7 4 } 17*ebfedea0SLionel Sambucid-pkcs7-digestedData OBJECT IDENTIFIER ::= { id-pkcs7 5 } 18*ebfedea0SLionel Sambucid-pkcs7-encryptedData OBJECT IDENTIFIER ::= { id-pkcs7 6 } 19*ebfedea0SLionel Sambuc 20*ebfedea0SLionel SambucCMSVersion ::= INTEGER { 21*ebfedea0SLionel Sambuc CMSVersion_v0(0), 22*ebfedea0SLionel Sambuc CMSVersion_v1(1), 23*ebfedea0SLionel Sambuc CMSVersion_v2(2), 24*ebfedea0SLionel Sambuc CMSVersion_v3(3), 25*ebfedea0SLionel Sambuc CMSVersion_v4(4) 26*ebfedea0SLionel Sambuc} 27*ebfedea0SLionel Sambuc 28*ebfedea0SLionel SambucDigestAlgorithmIdentifier ::= AlgorithmIdentifier 29*ebfedea0SLionel SambucDigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier 30*ebfedea0SLionel SambucSignatureAlgorithmIdentifier ::= AlgorithmIdentifier 31*ebfedea0SLionel Sambuc 32*ebfedea0SLionel SambucContentType ::= OBJECT IDENTIFIER 33*ebfedea0SLionel SambucMessageDigest ::= OCTET STRING 34*ebfedea0SLionel Sambuc 35*ebfedea0SLionel SambucContentInfo ::= SEQUENCE { 36*ebfedea0SLionel Sambuc contentType ContentType, 37*ebfedea0SLionel Sambuc content [0] EXPLICIT heim_any OPTIONAL -- DEFINED BY contentType 38*ebfedea0SLionel Sambuc} 39*ebfedea0SLionel Sambuc 40*ebfedea0SLionel SambucEncapsulatedContentInfo ::= SEQUENCE { 41*ebfedea0SLionel Sambuc eContentType ContentType, 42*ebfedea0SLionel Sambuc eContent [0] EXPLICIT OCTET STRING OPTIONAL 43*ebfedea0SLionel Sambuc} 44*ebfedea0SLionel Sambuc 45*ebfedea0SLionel SambucCertificateSet ::= SET OF heim_any 46*ebfedea0SLionel Sambuc 47*ebfedea0SLionel SambucCertificateList ::= Certificate 48*ebfedea0SLionel Sambuc 49*ebfedea0SLionel SambucCertificateRevocationLists ::= SET OF CertificateList 50*ebfedea0SLionel Sambuc 51*ebfedea0SLionel SambucIssuerAndSerialNumber ::= SEQUENCE { 52*ebfedea0SLionel Sambuc issuer Name, 53*ebfedea0SLionel Sambuc serialNumber CertificateSerialNumber 54*ebfedea0SLionel Sambuc} 55*ebfedea0SLionel Sambuc 56*ebfedea0SLionel Sambuc-- RecipientIdentifier is same as SignerIdentifier, 57*ebfedea0SLionel Sambuc-- lets glue them togheter and save some bytes and share code for them 58*ebfedea0SLionel Sambuc 59*ebfedea0SLionel SambucCMSIdentifier ::= CHOICE { 60*ebfedea0SLionel Sambuc issuerAndSerialNumber IssuerAndSerialNumber, 61*ebfedea0SLionel Sambuc subjectKeyIdentifier [0] SubjectKeyIdentifier 62*ebfedea0SLionel Sambuc} 63*ebfedea0SLionel Sambuc 64*ebfedea0SLionel SambucSignerIdentifier ::= CMSIdentifier 65*ebfedea0SLionel SambucRecipientIdentifier ::= CMSIdentifier 66*ebfedea0SLionel Sambuc 67*ebfedea0SLionel Sambuc--- CMSAttributes are the combined UnsignedAttributes and SignedAttributes 68*ebfedea0SLionel Sambuc--- to store space and share code 69*ebfedea0SLionel Sambuc 70*ebfedea0SLionel SambucCMSAttributes ::= SET OF Attribute -- SIZE (1..MAX) 71*ebfedea0SLionel Sambuc 72*ebfedea0SLionel SambucSignatureValue ::= OCTET STRING 73*ebfedea0SLionel Sambuc 74*ebfedea0SLionel SambucSignerInfo ::= SEQUENCE { 75*ebfedea0SLionel Sambuc version CMSVersion, 76*ebfedea0SLionel Sambuc sid SignerIdentifier, 77*ebfedea0SLionel Sambuc digestAlgorithm DigestAlgorithmIdentifier, 78*ebfedea0SLionel Sambuc signedAttrs [0] IMPLICIT -- CMSAttributes -- 79*ebfedea0SLionel Sambuc SET OF Attribute OPTIONAL, 80*ebfedea0SLionel Sambuc signatureAlgorithm SignatureAlgorithmIdentifier, 81*ebfedea0SLionel Sambuc signature SignatureValue, 82*ebfedea0SLionel Sambuc unsignedAttrs [1] IMPLICIT -- CMSAttributes -- 83*ebfedea0SLionel Sambuc SET OF Attribute OPTIONAL 84*ebfedea0SLionel Sambuc} 85*ebfedea0SLionel Sambuc 86*ebfedea0SLionel SambucSignerInfos ::= SET OF SignerInfo 87*ebfedea0SLionel Sambuc 88*ebfedea0SLionel SambucSignedData ::= SEQUENCE { 89*ebfedea0SLionel Sambuc version CMSVersion, 90*ebfedea0SLionel Sambuc digestAlgorithms DigestAlgorithmIdentifiers, 91*ebfedea0SLionel Sambuc encapContentInfo EncapsulatedContentInfo, 92*ebfedea0SLionel Sambuc certificates [0] IMPLICIT -- CertificateSet -- 93*ebfedea0SLionel Sambuc SET OF heim_any OPTIONAL, 94*ebfedea0SLionel Sambuc crls [1] IMPLICIT -- CertificateRevocationLists -- 95*ebfedea0SLionel Sambuc heim_any OPTIONAL, 96*ebfedea0SLionel Sambuc signerInfos SignerInfos 97*ebfedea0SLionel Sambuc} 98*ebfedea0SLionel Sambuc 99*ebfedea0SLionel SambucOriginatorInfo ::= SEQUENCE { 100*ebfedea0SLionel Sambuc certs [0] IMPLICIT -- CertificateSet -- 101*ebfedea0SLionel Sambuc SET OF heim_any OPTIONAL, 102*ebfedea0SLionel Sambuc crls [1] IMPLICIT --CertificateRevocationLists -- 103*ebfedea0SLionel Sambuc heim_any OPTIONAL 104*ebfedea0SLionel Sambuc} 105*ebfedea0SLionel Sambuc 106*ebfedea0SLionel SambucKeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier 107*ebfedea0SLionel SambucContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier 108*ebfedea0SLionel Sambuc 109*ebfedea0SLionel SambucEncryptedKey ::= OCTET STRING 110*ebfedea0SLionel Sambuc 111*ebfedea0SLionel SambucKeyTransRecipientInfo ::= SEQUENCE { 112*ebfedea0SLionel Sambuc version CMSVersion, -- always set to 0 or 2 113*ebfedea0SLionel Sambuc rid RecipientIdentifier, 114*ebfedea0SLionel Sambuc keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, 115*ebfedea0SLionel Sambuc encryptedKey EncryptedKey 116*ebfedea0SLionel Sambuc} 117*ebfedea0SLionel Sambuc 118*ebfedea0SLionel SambucRecipientInfo ::= KeyTransRecipientInfo 119*ebfedea0SLionel Sambuc 120*ebfedea0SLionel SambucRecipientInfos ::= SET OF RecipientInfo 121*ebfedea0SLionel Sambuc 122*ebfedea0SLionel SambucEncryptedContent ::= OCTET STRING 123*ebfedea0SLionel Sambuc 124*ebfedea0SLionel SambucEncryptedContentInfo ::= SEQUENCE { 125*ebfedea0SLionel Sambuc contentType ContentType, 126*ebfedea0SLionel Sambuc contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, 127*ebfedea0SLionel Sambuc encryptedContent [0] IMPLICIT OCTET STRING OPTIONAL 128*ebfedea0SLionel Sambuc} 129*ebfedea0SLionel Sambuc 130*ebfedea0SLionel SambucUnprotectedAttributes ::= SET OF Attribute -- SIZE (1..MAX) 131*ebfedea0SLionel Sambuc 132*ebfedea0SLionel SambucCMSEncryptedData ::= SEQUENCE { 133*ebfedea0SLionel Sambuc version CMSVersion, 134*ebfedea0SLionel Sambuc encryptedContentInfo EncryptedContentInfo, 135*ebfedea0SLionel Sambuc unprotectedAttrs [1] IMPLICIT -- UnprotectedAttributes -- 136*ebfedea0SLionel Sambuc heim_any OPTIONAL 137*ebfedea0SLionel Sambuc} 138*ebfedea0SLionel Sambuc 139*ebfedea0SLionel SambucEnvelopedData ::= SEQUENCE { 140*ebfedea0SLionel Sambuc version CMSVersion, 141*ebfedea0SLionel Sambuc originatorInfo [0] IMPLICIT -- OriginatorInfo -- heim_any OPTIONAL, 142*ebfedea0SLionel Sambuc recipientInfos RecipientInfos, 143*ebfedea0SLionel Sambuc encryptedContentInfo EncryptedContentInfo, 144*ebfedea0SLionel Sambuc unprotectedAttrs [1] IMPLICIT -- UnprotectedAttributes -- 145*ebfedea0SLionel Sambuc heim_any OPTIONAL 146*ebfedea0SLionel Sambuc} 147*ebfedea0SLionel Sambuc 148*ebfedea0SLionel Sambuc-- Data ::= OCTET STRING 149*ebfedea0SLionel Sambuc 150*ebfedea0SLionel SambucCMSRC2CBCParameter ::= SEQUENCE { 151*ebfedea0SLionel Sambuc rc2ParameterVersion INTEGER (0..4294967295), 152*ebfedea0SLionel Sambuc iv OCTET STRING -- exactly 8 octets 153*ebfedea0SLionel Sambuc} 154*ebfedea0SLionel Sambuc 155*ebfedea0SLionel SambucCMSCBCParameter ::= OCTET STRING 156*ebfedea0SLionel Sambuc 157*ebfedea0SLionel SambucEND 158