]> git.saurik.com Git - apple/security.git/blob - SecuritySNACCRuntime/c++-lib/inc/asn-useful.h
daadb7b5a50bb839c306edda19abcc60513ba950
[apple/security.git] / SecuritySNACCRuntime / c++-lib / inc / asn-useful.h
1 // NOTE: this is a machine generated file--editing not recommended
2 //
3 // asn-useful.h - class definitions for ASN.1 module ASN-USEFUL
4 //
5 // This file was generated by snacc on Wed Mar 20 10:07:04 2002
6 // UBC snacc by Mike Sample
7 // A couple of enhancements made by IBM European Networking Center
8
9 #ifndef _asn_useful_h_
10 #define _asn_useful_h_
11
12
13 //------------------------------------------------------------------------------
14 // class declarations:
15
16 class ObjectDescriptor;
17 class UTF8String;
18 class NumericString;
19 class PrintableString;
20 class TeletexString;
21 class T61String;
22 class VideotexString;
23 class IA5String;
24 class GraphicString;
25 class VisibleString;
26 class ISO646String;
27 class GeneralString;
28 class UTCTime;
29 class GeneralizedTime;
30 class UniversalString;
31 class BMPString;
32 class EXTERNALChoice;
33 class EXTERNAL;
34
35 //------------------------------------------------------------------------------
36 // class definitions:
37
38 /* [UNIVERSAL 7] IMPLICIT OCTET STRING */
39 class ObjectDescriptor: public AsnOcts
40 {
41 public:
42 ObjectDescriptor(): AsnOcts() {}
43 ObjectDescriptor (const char *str): AsnOcts (str) {}
44 ObjectDescriptor (const char *str, const size_t len): AsnOcts (str, len) {}
45 ObjectDescriptor (const AsnOcts &o): AsnOcts (o) {}
46 ObjectDescriptor &operator = (const ObjectDescriptor &o) { ReSet (o); return *this; }
47 ObjectDescriptor &operator = (const char *str) { ReSet (str); return *this; }
48 virtual AsnType *Clone() const;
49
50 virtual AsnType *Copy() const;
51
52 AsnLen BEnc (BUF_TYPE b);
53 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
54 };
55
56
57 /* [UNIVERSAL 12] IMPLICIT OCTET STRING */
58 class UTF8String: public AsnOcts
59 {
60 public:
61 UTF8String(): AsnOcts() {}
62 UTF8String (const char *str): AsnOcts (str) {}
63 UTF8String (const char *str, const size_t len): AsnOcts (str, len) {}
64 UTF8String (const AsnOcts &o): AsnOcts (o) {}
65 UTF8String &operator = (const UTF8String &o) { ReSet (o); return *this; }
66 UTF8String &operator = (const char *str) { ReSet (str); return *this; }
67 virtual AsnType *Clone() const;
68
69 virtual AsnType *Copy() const;
70
71 AsnLen BEnc (BUF_TYPE b);
72 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
73 };
74
75
76 /* [UNIVERSAL 18] IMPLICIT OCTET STRING */
77 class NumericString: public AsnOcts
78 {
79 public:
80 NumericString(): AsnOcts() {}
81 NumericString (const char *str): AsnOcts (str) {}
82 NumericString (const char *str, const size_t len): AsnOcts (str, len) {}
83 NumericString (const AsnOcts &o): AsnOcts (o) {}
84 NumericString &operator = (const NumericString &o) { ReSet (o); return *this; }
85 NumericString &operator = (const char *str) { ReSet (str); return *this; }
86 virtual AsnType *Clone() const;
87
88 virtual AsnType *Copy() const;
89
90 AsnLen BEnc (BUF_TYPE b);
91 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
92 };
93
94
95 /* [UNIVERSAL 19] IMPLICIT OCTET STRING */
96 class PrintableString: public AsnOcts
97 {
98 public:
99 PrintableString(): AsnOcts() {}
100 PrintableString (const char *str): AsnOcts (str) {}
101 PrintableString (const char *str, const size_t len): AsnOcts (str, len) {}
102 PrintableString (const AsnOcts &o): AsnOcts (o) {}
103 PrintableString &operator = (const PrintableString &o) { ReSet (o); return *this; }
104 PrintableString &operator = (const char *str) { ReSet (str); return *this; }
105 virtual AsnType *Clone() const;
106
107 virtual AsnType *Copy() const;
108
109 AsnLen BEnc (BUF_TYPE b);
110 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
111 };
112
113
114 /* [UNIVERSAL 20] IMPLICIT OCTET STRING */
115 class TeletexString: public AsnOcts
116 {
117 public:
118 TeletexString(): AsnOcts() {}
119 TeletexString (const char *str): AsnOcts (str) {}
120 TeletexString (const char *str, const size_t len): AsnOcts (str, len) {}
121 TeletexString (const AsnOcts &o): AsnOcts (o) {}
122 TeletexString &operator = (const TeletexString &o) { ReSet (o); return *this; }
123 TeletexString &operator = (const char *str) { ReSet (str); return *this; }
124 virtual AsnType *Clone() const;
125
126 virtual AsnType *Copy() const;
127
128 AsnLen BEnc (BUF_TYPE b);
129 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
130 };
131
132
133 /* [UNIVERSAL 20] IMPLICIT OCTET STRING */
134 class T61String: public AsnOcts
135 {
136 public:
137 T61String(): AsnOcts() {}
138 T61String (const char *str): AsnOcts (str) {}
139 T61String (const char *str, const size_t len): AsnOcts (str, len) {}
140 T61String (const AsnOcts &o): AsnOcts (o) {}
141 T61String &operator = (const T61String &o) { ReSet (o); return *this; }
142 T61String &operator = (const char *str) { ReSet (str); return *this; }
143 virtual AsnType *Clone() const;
144
145 virtual AsnType *Copy() const;
146
147 AsnLen BEnc (BUF_TYPE b);
148 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
149 };
150
151
152 /* [UNIVERSAL 21] IMPLICIT OCTET STRING */
153 class VideotexString: public AsnOcts
154 {
155 public:
156 VideotexString(): AsnOcts() {}
157 VideotexString (const char *str): AsnOcts (str) {}
158 VideotexString (const char *str, const size_t len): AsnOcts (str, len) {}
159 VideotexString (const AsnOcts &o): AsnOcts (o) {}
160 VideotexString &operator = (const VideotexString &o) { ReSet (o); return *this; }
161 VideotexString &operator = (const char *str) { ReSet (str); return *this; }
162 virtual AsnType *Clone() const;
163
164 virtual AsnType *Copy() const;
165
166 AsnLen BEnc (BUF_TYPE b);
167 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
168 };
169
170
171 /* [UNIVERSAL 22] IMPLICIT OCTET STRING */
172 class IA5String: public AsnOcts
173 {
174 public:
175 IA5String(): AsnOcts() {}
176 IA5String (const char *str): AsnOcts (str) {}
177 IA5String (const char *str, const size_t len): AsnOcts (str, len) {}
178 IA5String (const AsnOcts &o): AsnOcts (o) {}
179 IA5String &operator = (const IA5String &o) { ReSet (o); return *this; }
180 IA5String &operator = (const char *str) { ReSet (str); return *this; }
181 virtual AsnType *Clone() const;
182
183 virtual AsnType *Copy() const;
184
185 AsnLen BEnc (BUF_TYPE b);
186 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
187 };
188
189
190 /* [UNIVERSAL 25] IMPLICIT OCTET STRING */
191 class GraphicString: public AsnOcts
192 {
193 public:
194 GraphicString(): AsnOcts() {}
195 GraphicString (const char *str): AsnOcts (str) {}
196 GraphicString (const char *str, const size_t len): AsnOcts (str, len) {}
197 GraphicString (const AsnOcts &o): AsnOcts (o) {}
198 GraphicString &operator = (const GraphicString &o) { ReSet (o); return *this; }
199 GraphicString &operator = (const char *str) { ReSet (str); return *this; }
200 virtual AsnType *Clone() const;
201
202 virtual AsnType *Copy() const;
203
204 AsnLen BEnc (BUF_TYPE b);
205 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
206 };
207
208
209 /* [UNIVERSAL 26] IMPLICIT OCTET STRING */
210 class VisibleString: public AsnOcts
211 {
212 public:
213 VisibleString(): AsnOcts() {}
214 VisibleString (const char *str): AsnOcts (str) {}
215 VisibleString (const char *str, const size_t len): AsnOcts (str, len) {}
216 VisibleString (const AsnOcts &o): AsnOcts (o) {}
217 VisibleString &operator = (const VisibleString &o) { ReSet (o); return *this; }
218 VisibleString &operator = (const char *str) { ReSet (str); return *this; }
219 virtual AsnType *Clone() const;
220
221 virtual AsnType *Copy() const;
222
223 AsnLen BEnc (BUF_TYPE b);
224 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
225 };
226
227
228 /* [UNIVERSAL 26] IMPLICIT OCTET STRING */
229 class ISO646String: public AsnOcts
230 {
231 public:
232 ISO646String(): AsnOcts() {}
233 ISO646String (const char *str): AsnOcts (str) {}
234 ISO646String (const char *str, const size_t len): AsnOcts (str, len) {}
235 ISO646String (const AsnOcts &o): AsnOcts (o) {}
236 ISO646String &operator = (const ISO646String &o) { ReSet (o); return *this; }
237 ISO646String &operator = (const char *str) { ReSet (str); return *this; }
238 virtual AsnType *Clone() const;
239
240 virtual AsnType *Copy() const;
241
242 AsnLen BEnc (BUF_TYPE b);
243 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
244 };
245
246
247 /* [UNIVERSAL 27] IMPLICIT OCTET STRING */
248 class GeneralString: public AsnOcts
249 {
250 public:
251 GeneralString(): AsnOcts() {}
252 GeneralString (const char *str): AsnOcts (str) {}
253 GeneralString (const char *str, const size_t len): AsnOcts (str, len) {}
254 GeneralString (const AsnOcts &o): AsnOcts (o) {}
255 GeneralString &operator = (const GeneralString &o) { ReSet (o); return *this; }
256 GeneralString &operator = (const char *str) { ReSet (str); return *this; }
257 virtual AsnType *Clone() const;
258
259 virtual AsnType *Copy() const;
260
261 AsnLen BEnc (BUF_TYPE b);
262 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
263 };
264
265
266 /* [UNIVERSAL 23] IMPLICIT OCTET STRING */
267 class UTCTime: public AsnOcts
268 {
269 public:
270 UTCTime(): AsnOcts() {}
271 UTCTime (const char *str): AsnOcts (str) {}
272 UTCTime (const char *str, const size_t len): AsnOcts (str, len) {}
273 UTCTime (const AsnOcts &o): AsnOcts (o) {}
274 UTCTime &operator = (const UTCTime &o) { ReSet (o); return *this; }
275 UTCTime &operator = (const char *str) { ReSet (str); return *this; }
276 virtual AsnType *Clone() const;
277
278 virtual AsnType *Copy() const;
279
280 AsnLen BEnc (BUF_TYPE b);
281 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
282 };
283
284
285 /* [UNIVERSAL 24] IMPLICIT OCTET STRING */
286 class GeneralizedTime: public AsnOcts
287 {
288 public:
289 GeneralizedTime(): AsnOcts() {}
290 GeneralizedTime (const char *str): AsnOcts (str) {}
291 GeneralizedTime (const char *str, const size_t len): AsnOcts (str, len) {}
292 GeneralizedTime (const AsnOcts &o): AsnOcts (o) {}
293 GeneralizedTime &operator = (const GeneralizedTime &o) { ReSet (o); return *this; }
294 GeneralizedTime &operator = (const char *str) { ReSet (str); return *this; }
295 virtual AsnType *Clone() const;
296
297 virtual AsnType *Copy() const;
298
299 AsnLen BEnc (BUF_TYPE b);
300 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
301 };
302
303
304 /* [UNIVERSAL 28] IMPLICIT OCTET STRING */
305 class UniversalString: public AsnOcts
306 {
307 public:
308 UniversalString(): AsnOcts() {}
309 UniversalString (const char *str): AsnOcts (str) {}
310 UniversalString (const char *str, const size_t len): AsnOcts (str, len) {}
311 UniversalString (const AsnOcts &o): AsnOcts (o) {}
312 UniversalString &operator = (const UniversalString &o) { ReSet (o); return *this; }
313 UniversalString &operator = (const char *str) { ReSet (str); return *this; }
314 virtual AsnType *Clone() const;
315
316 virtual AsnType *Copy() const;
317
318 AsnLen BEnc (BUF_TYPE b);
319 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
320 };
321
322
323 /* [UNIVERSAL 30] IMPLICIT OCTET STRING */
324 class BMPString: public AsnOcts
325 {
326 public:
327 BMPString(): AsnOcts() {}
328 BMPString (const char *str): AsnOcts (str) {}
329 BMPString (const char *str, const size_t len): AsnOcts (str, len) {}
330 BMPString (const AsnOcts &o): AsnOcts (o) {}
331 BMPString &operator = (const BMPString &o) { ReSet (o); return *this; }
332 BMPString &operator = (const char *str) { ReSet (str); return *this; }
333 virtual AsnType *Clone() const;
334
335 virtual AsnType *Copy() const;
336
337 AsnLen BEnc (BUF_TYPE b);
338 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
339 };
340
341
342 class EXTERNALChoice: public AsnType
343 {
344 public:
345 enum ChoiceIdEnum
346 {
347 single_ASN1_typeCid = 0,
348 octet_alignedCid = 1,
349 arbitraryCid = 2
350 };
351
352 enum ChoiceIdEnum choiceId;
353 union
354 {
355 AsnOcts *single_ASN1_type;
356 AsnOcts *octet_aligned;
357 AsnBits *arbitrary;
358 };
359
360
361 EXTERNALChoice();
362 EXTERNALChoice (const EXTERNALChoice &);
363 virtual ~EXTERNALChoice();
364
365 virtual AsnType *Clone() const;
366
367 virtual AsnType *Copy() const;
368
369 EXTERNALChoice &operator = (const EXTERNALChoice &);
370 AsnLen BEncContent (BUF_TYPE b);
371 void BDecContent (BUF_TYPE b, AsnTag tag, AsnLen elmtLen, AsnLen &bytesDecoded, ENV_TYPE env);
372 AsnLen BEnc (BUF_TYPE b);
373 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
374 void Print (ostream &os) const;
375 };
376
377
378 class EXTERNAL: public AsnType
379 {
380 public:
381 AsnOid *direct_reference;
382 AsnInt *indirect_reference;
383 ObjectDescriptor *data_value_descriptor;
384 EXTERNALChoice *encoding;
385
386 EXTERNAL();
387 EXTERNAL (const EXTERNAL &);
388 virtual ~EXTERNAL();
389 virtual AsnType *Clone() const;
390
391 virtual AsnType *Copy() const;
392
393 EXTERNAL &operator = (const EXTERNAL &);
394 AsnLen BEncContent (BUF_TYPE b);
395 void BDecContent (BUF_TYPE b, AsnTag tag, AsnLen elmtLen, AsnLen &bytesDecoded, ENV_TYPE env);
396
397 AsnLen BEnc (BUF_TYPE b);
398 void BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env);
399 void Print (ostream &os) const;
400 };
401
402
403 //------------------------------------------------------------------------------
404 // externs for value defs
405
406 //------------------------------------------------------------------------------
407
408 #endif /* conditional include of asn-useful.h */