epan/dissectors/pidl/ C99 drsuapi
[wireshark-sm.git] / epan / dissectors / asn1 / x509af / AuthenticationFramework.asn
bloba978e122dfd99739964707995dcb0c49b3511807
1 -- Module AuthenticationFramework (X.509:08/1997)
3 AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
4   authenticationFramework(7) 3} DEFINITIONS ::=
5 BEGIN
7 --  EXPORTS All 
8 --  The types and values defined in this module are exported for use in the other ASN.1 modules contained
9 --  within the Directory Specifications, and for the use of other applications which will use them to access
10 --  Directory services. Other applications may use them for their own purposes, but this will not constrain
11 --  extensions and modifications needed to maintain or improve the Directory service.
12 IMPORTS
13   id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
14     basicAccessControl, certificateExtensions
15     FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
16       usefulDefinitions(0) 3}
17   Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute, RDNSequence
18     FROM InformationFramework informationFramework
19   ub-user-password
20     FROM UpperBounds upperBounds
21   AuthenticationLevel
22     FROM BasicAccessControl basicAccessControl
23   UniqueIdentifier, octetStringMatch
24     FROM SelectedAttributeTypes selectedAttributeTypes
25   certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
26     GeneralNames
27     FROM CertificateExtensions certificateExtensions;
29 --  basic certificate definition
30 Certificate ::= SEQUENCE {
31   signedCertificate SEQUENCE {
32                version                  [0]  Version DEFAULT v1,
33                serialNumber             CertificateSerialNumber,
34                signature                AlgorithmIdentifier,
35                issuer                   Name, 
36                validity                 Validity,
37                subject                  SubjectName,
38                subjectPublicKeyInfo     SubjectPublicKeyInfo,
39                issuerUniqueIdentifier   [1] IMPLICIT UniqueIdentifier OPTIONAL,
40                --  if present, version must be v2 or v3
41                subjectUniqueIdentifier  [2] IMPLICIT UniqueIdentifier OPTIONAL,
42                --  if present, version must be v2 or v3
43                extensions               [3]  Extensions OPTIONAL
44                --  If present, version must be v3 -- },
45   algorithmIdentifier  AlgorithmIdentifier,
46   encrypted            BIT STRING
49 -- imported to allow labelling
50 SubjectName ::= CHOICE {
51    rdnSequence  RDNSequence
54 Version ::= INTEGER {v1(0), v2(1), v3(2)}
56 CertificateSerialNumber ::= INTEGER
58 AlgorithmIdentifier ::= SEQUENCE {
59   algorithmId OBJECT IDENTIFIER,
60   parameters  ANY OPTIONAL
63 --      Definition of the following information object set is deferred, perhaps to standardized
64 --      profiles or to protocol implementation conformance statements. The set is required to
65 --      specify a table constraint on the parameters component of AlgorithmIdentifier.
66 --SupportedAlgorithms ALGORITHM ::=
67 --{...}
69 Validity ::= SEQUENCE {notBefore  Time,
70                        notAfter   Time
73 SubjectPublicKeyInfo ::= SEQUENCE {
74   algorithm         AlgorithmIdentifier,
75   subjectPublicKey  BIT STRING
78 Time ::= CHOICE {utcTime          UTCTime,
79                  generalizedTime  GeneralizedTime
82 Extensions ::= SEQUENCE OF Extension
84 --  For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
85 --  specification of those individual extensions shall include the rules for the significance of the order therein
86 Extension ::= SEQUENCE {
87   extnId     OBJECT IDENTIFIER,
88   critical   BOOLEAN OPTIONAL,
89   extnValue  OCTET STRING
90 --    contains a DER encoding of a value of type &ExtnType
91 --    for the extension object identified by extnId 
94 --ExtensionSet EXTENSION ::=
95 --  {...}
97 EXTENSION ::= CLASS {&id        OBJECT IDENTIFIER UNIQUE,
98                      &ExtnType  
99 }WITH SYNTAX {SYNTAX &ExtnType
100               IDENTIFIED BY &id
103 --  other certificate constructs
104 Certificates ::= SEQUENCE {
105   userCertificate    Certificate,
106   certificationPath  ForwardCertificationPath OPTIONAL
109 ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
111 CrossCertificates ::= SET OF Certificate
113 CertificationPath ::= SEQUENCE {
114   userCertificate    Certificate,
115   theCACertificates  SEQUENCE OF CertificatePair OPTIONAL
118 CertificatePair ::= SEQUENCE {
119   issuedByThisCA  [0]  Certificate OPTIONAL,
120   issuedToThisCA  [1]  Certificate OPTIONAL
121   --  at least one of the pair shall be present 
124 --  Certificate Revocation List (CRL)
125 CertificateList ::= SEQUENCE {
126     signedCertificateList SEQUENCE {
127                version              Version OPTIONAL,
128                --  if present, version must be v2
129                signature            AlgorithmIdentifier,
130                issuer               Name, 
131                thisUpdate           Time,
132                nextUpdate           Time OPTIONAL,
133                revokedCertificates
134                  SEQUENCE OF
135                    SEQUENCE {userCertificate     CertificateSerialNumber,
136                              revocationDate      Time,
137                              crlEntryExtensions  Extensions OPTIONAL} OPTIONAL,
138                crlExtensions        [0]  Extensions OPTIONAL},
139   algorithmIdentifier  AlgorithmIdentifier,
140   encrypted            BIT STRING
143 --  attribute certificate
144 AttributeCertificationPath ::= SEQUENCE {
145   attributeCertificate  AttributeCertificate,
146   acPath                SEQUENCE OF ACPathData OPTIONAL
149 ACPathData ::= SEQUENCE {
150   certificate           [0]  Certificate OPTIONAL,
151   attributeCertificate  [1]  AttributeCertificate OPTIONAL
154 --attributeCertificate ATTRIBUTE ::= {
155 --  WITH SYNTAX             AttributeCertificate
156 --  EQUALITY MATCHING RULE  attributeCertificateMatch
157 --  ID                      id-at-attributeCertificate
160 AttributeCertificate ::= SEQUENCE {
161   signedAttributeCertificateInfo AttributeCertificateInfo,
162   algorithmIdentifier  AlgorithmIdentifier,
163   encrypted            BIT STRING
166 AttributeCertificateInfo ::= SEQUENCE {
167   version                Version DEFAULT v1,
168   subject
169     CHOICE {baseCertificateID  [0]  IssuerSerial,
170             subjectName        [1]  GeneralNames
171            },
172   issuer                 GeneralNames,
173   signature              AlgorithmIdentifier,
174   serialNumber           CertificateSerialNumber,
175   attCertValidityPeriod  AttCertValidityPeriod,
176   attributes             SEQUENCE OF Attribute,
177   issuerUniqueID         UniqueIdentifier OPTIONAL,
178   extensions             Extensions OPTIONAL
181 IssuerSerial ::= SEQUENCE {
182   issuer     GeneralNames,
183   serial     CertificateSerialNumber,
184   issuerUID  UniqueIdentifier OPTIONAL
187 AttCertValidityPeriod ::= SEQUENCE {
188   notBeforeTime  GeneralizedTime,
189   notAfterTime   GeneralizedTime
192 --attributeCertificateMatch MATCHING-RULE ::= {
193 --  SYNTAX  AttributeCertificateAssertion
194 --  ID      id-mr-attributeCertificateMatch
197 AttributeCertificateAssertion ::= SEQUENCE {
198   subject
199     [0]  CHOICE {baseCertificateID  [0]  IssuerSerial,
200                  subjectName        [1]  SubjectName} OPTIONAL,
201   issuer           [1]  Name OPTIONAL,
202   attCertValidity  [2]  GeneralizedTime OPTIONAL,
203   attType          [3]  SET OF AttributeType OPTIONAL
206 --  At least one component of the sequence must be present
207 --  attribute types 
208 --userPassword ATTRIBUTE ::= {
209 --  WITH SYNTAX             OCTET STRING(SIZE (0..ub-user-password))
210 --  EQUALITY MATCHING RULE  octetStringMatch
211 --  ID                      id-at-userPassword
214 --userCertificate ATTRIBUTE ::= {
215 --  WITH SYNTAX             Certificate
216 --  EQUALITY MATCHING RULE  certificateExactMatch
217 --  ID                      id-at-userCertificate
220 --cACertificate ATTRIBUTE ::= {
221 --  WITH SYNTAX             Certificate
222 --  EQUALITY MATCHING RULE  certificateExactMatch
223 --  ID                      id-at-cAcertificate
226 --crossCertificatePair ATTRIBUTE ::= {
227 --  WITH SYNTAX             CertificatePair
228 --  EQUALITY MATCHING RULE  certificatePairExactMatch
229 --  ID                      id-at-crossCertificatePair
232 --authorityRevocationList ATTRIBUTE ::= {
233 --  WITH SYNTAX             CertificateList
234 --  EQUALITY MATCHING RULE  certificateListExactMatch
235 --  ID                      id-at-authorityRevocationList
238 --certificateRevocationList ATTRIBUTE ::= {
239 --  WITH SYNTAX             CertificateList
240 --  EQUALITY MATCHING RULE  certificateListExactMatch
241 --  ID                      id-at-certificateRevocationList
244 --attributeCertificateRevocationList ATTRIBUTE ::= {
245 --  WITH SYNTAX  CertificateList
246 --  ID           id-at-attributeCertificateRevocationList
249 --  information object classes 
250 --ALGORITHM ::= TYPE-IDENTIFIER
252 --  object identifier assignments 
253 --id-at-userPassword OBJECT IDENTIFIER ::=
254 --  {id-at 35}
256 id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
258 id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
260 id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
262 id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
264 id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
266 id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
268 id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
270 --id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
272 -- these are sneaked in from DSS - a separate dissector seems OTT
274 DSS-Params ::= SEQUENCE {
275   p INTEGER,
276   q INTEGER,
277   g INTEGER
279 -- WS Add some stuff fytom RFC 1274
281 ub-user-identifier INTEGER ::= 256
282 Userid ::= UTF8String (SIZE (1 .. ub-user-identifier))
286 -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D