1 -- @(#) sm_ess.asn 1.13 12/17/98 14:17:02
2 -- FROM ess.txt: draft-ietf-smime-ess-09.txt
3 ExtendedSecurityServices
4 { 1 2 840 113549 1 9 16 0 2 } --MB;{ iso(1) member-body(2) us(840) rsadsi(113549)
5 --MB; pkcs(1) pkcs-9(9) smime(16) modules(0) ess(2) }
7 DEFINITIONS IMPLICIT TAGS ::=
12 KeyIdentifier, PolicyQualifierInfo, PolicyInformation, CertPolicyId
13 FROM CertificateExtensions
18 -- Cryptographic Message Syntax (CMS)
19 ContentType, IssuerAndSerialNumber, CMSVersion
20 FROM CryptographicMessageSyntax { 1 2 840 113549 1 9 16 0 1 }
21 --RWC;iso(1) member-body(2) us(840)
22 --RWC;rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) modules(0) cms(1)}
24 -- PKIX Certificate and CRL Profile, Sec A.2 Implicitly Tagged Module,
26 --RWC;PolicyInformation FROM PKIX1Implicit88 {iso(1) RWC; Added ")"
27 --RWC;identified-organization(3)dod(6) internet(1) security(5)
28 --RWC;mechanisms(5) pkix(7)id-mod(0) id-pkix1-implicit-88(2)}
31 --RWC;GeneralNames, CertificateSerialNumber FROM CertificateExtensions RWC; Removed ","
32 --RWC;{joint-iso-ccitt ds(5) module(1) certificateExtensions(26) 0}
34 ub-security-categories, ub-privacy-mark-length, ub-integer-options FROM UpperBounds
35 -- RWC; Added to avoid SNACC ASN.1 Compiler link errors.
37 CertificateSerialNumber, IssuerSerial
38 FROM AuthenticationFramework --RWC; Added
40 GeneralNames FROM CommonX509Definitions ; --RWC; Added
43 -- Extended Security Services
45 -- The construct "SEQUENCE SIZE (1..MAX) OF" appears in several ASN.1
46 -- constructs in this module. A valid ASN.1 SEQUENCE can have zero or
47 -- more entries. The SIZE (1..MAX) construct constrains the SEQUENCE to
48 -- have at least one entry. MAX indicates the upper bound is unspecified.
49 -- Implementations are free to choose an upper bound that suits their
54 ReceiptRequest ::= SEQUENCE {
55 signedContentIdentifier ContentIdentifier,
56 receiptsFrom ReceiptsFrom,
57 receiptsTo SEQUENCE SIZE (1..ub-receiptsTo) OF GeneralNames }
59 ub-receiptsTo INTEGER ::= 16
61 smime OBJECT IDENTIFIER ::= { pkcs-9 smime(16) }
63 id-aa OBJECT IDENTIFIER ::= { pkcs-9 smime(16) 2 }
65 id-aa-receiptRequest OBJECT IDENTIFIER ::= { id-aa 1 }
67 ContentIdentifier ::= OCTET STRING
69 id-aa-contentIdentifier OBJECT IDENTIFIER ::= { id-aa 7 }
71 ReceiptsFrom ::= CHOICE {
72 allOrFirstTier [0] AllOrFirstTier,
73 -- formerly "allOrNone [0]AllOrNone"
74 receiptList [1] SEQUENCE OF GeneralNames }
76 AllOrFirstTier ::= INTEGER { -- Formerly AllOrNone
78 firstTierRecipients (1) }
83 Receipt ::= SEQUENCE {
84 version CMSVersion, -- Version is imported from [CMS]
85 contentType ContentType,
86 signedContentIdentifier ContentIdentifier,
87 originatorSignatureValue OCTET STRING }
89 id-ct-receipt OBJECT IDENTIFIER ::= { smime id-ct(1) 1 }
93 ContentHints ::= SEQUENCE {
94 contentDescription UTF8String OPTIONAL, --RWC;SIZE (1..MAX) OPTIONAL,
95 contentType ContentType }
97 id-aa-contentHint OBJECT IDENTIFIER ::= { id-aa 4 }
101 MsgSigDigest ::= OCTET STRING
103 id-aa-msgSigDigest OBJECT IDENTIFIER ::= { id-aa 5 }
107 ContentReference ::= SEQUENCE {
108 contentType ContentType,
109 signedContentIdentifier ContentIdentifier,
110 originatorSignatureValue OCTET STRING }
112 id-aa-contentReference OBJECT IDENTIFIER ::= { id-aa 10 }
117 ESSSecurityLabel ::= SET {
118 security-policy-identifier SecurityPolicyIdentifier,
119 security-classification SecurityClassification OPTIONAL,
120 privacy-mark ESSPrivacyMark OPTIONAL,
121 security-categories SecurityCategories OPTIONAL }
123 id-aa-securityLabel OBJECT IDENTIFIER ::= { id-aa 2}
125 SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
127 SecurityClassification ::= INTEGER {
133 top-secret (5) } (0..ub-integer-options)
135 --RWC; IMPORTED;ub-integer-options INTEGER ::= 256
137 ESSPrivacyMark ::= CHOICE {
138 pStringááááá PrintableString, --RWC;SIZE (1..ub-privacy-mark-length),
139 utf8Stringáá UTF8String --RWC;SIZE (1..MAX)
142 --RWC; IMPORTED;ub-privacy-mark-length INTEGER ::= 128
144 SecurityCategories ::= SET SIZE (1..ub-security-categories) OF
147 --RWC; IMPORTED;ub-security-categories INTEGER ::= 64
149 SecurityCategory ::= SEQUENCE {
150 type [0] OBJECT IDENTIFIER,
151 value [1] ANY --RWC;DEFINED BY type
154 --Note: The aforementioned SecurityCategory syntax produces identical
155 --hex encodings as the following SecurityCategory syntax that is
156 --documented in the X.411 specification:
158 --SecurityCategory ::= SEQUENCE {
159 -- type [0] SECURITY-CATEGORY,
160 -- value [1] ANY DEFINED BY type }
162 --SECURITY-CATEGORY MACRO ::=
164 --TYPE NOTATION ::= type | empty
165 --VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER)
170 EquivalentLabels ::= SEQUENCE OF ESSSecurityLabel
172 id-aa-equivalentLabels OBJECT IDENTIFIER ::= { id-aa 9}
177 MLExpansionHistory ::= SEQUENCE
178 SIZE (1..ub-ml-expansion-history) OF MLData
180 id-aa-mlExpandHistory OBJECT IDENTIFIER ::= { id-aa 3}
182 ub-ml-expansion-history INTEGER ::= 64
184 MLData ::= SEQUENCE {
185 mailListIdentifier EntityIdentifier,
186 -- EntityIdentifier is imported from [CMS]
187 expansionTime GeneralizedTime,
188 mlReceiptPolicy MLReceiptPolicy OPTIONAL }
190 EntityIdentifier ::= CHOICE {
191 issuerAndSerialNumber IssuerAndSerialNumber,
192 subjectKeyIdentifier KeyIdentifier }
194 MLReceiptPolicy ::= CHOICE {
196 insteadOf [1] SEQUENCE SIZE (1..MAX) OF GeneralNames,
197 inAdditionTo [2] SEQUENCE SIZE (1..MAX) OF GeneralNames }
202 SigningCertificate ::= SEQUENCE {
203 certs SEQUENCE OF ESSCertID,
204 policies SEQUENCE OF PolicyInformation OPTIONAL
207 id-aa-signingCertificate OBJECT IDENTIFIER ::= { id-aa 4444 } --RWC;Removed <TBD> }
209 ESSCertID ::= SEQUENCE {
211 issuerSerial IssuerSerial OPTIONAL
214 CertHash ::= OCTET STRING -- SHA1 hash of entire certificate
215 --RWC; Modified "Hash" to "CertHash" to avoid crypto++ library contention.
218 --RWC; Added for completeness
222 -- policyQualifierIds for Internet policy qualifiers
224 id-pkix OBJECT IDENTIFIER ::=
225 { iso(1) identified-organization(3) dod(6) internet(1)
226 security(5) mechanisms(5) pkix(7) }
228 id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
229 id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
230 id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
232 PolicyQualifierId ::=
233 OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )