Fix warning of Coverity Static analysis, change H225ProtocolIdentifier
[asterisk/asterisk.git] / addons / ooh323c / src / h323 / H235-SECURITY-MESSAGES.h
1 /*
2  * Copyright (C) 2004-2005 by Objective Systems, Inc.
3  *
4  * This software is furnished under an open source license and may be 
5  * used and copied only in accordance with the terms of this license. 
6  * The text of the license may generally be found in the root 
7  * directory of this installation in the COPYING file.  It 
8  * can also be viewed online at the following URL:
9  *
10  *   http://www.obj-sys.com/open/license.html
11  *
12  * Any redistributions of this file including modified versions must 
13  * maintain this copyright notice.
14  *
15  *****************************************************************************/
16 /**
17  * This file was generated by the Objective Systems ASN1C Compiler
18  * (http://www.obj-sys.com).  Version: 5.72, Date: 22-Mar-2005.
19  */
20 #ifndef H235_SECURITY_MESSAGES_H
21 #define H235_SECURITY_MESSAGES_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #include <stdio.h>
28 #include <stdlib.h>
29
30 #include "ooasn1.h"
31
32 /**************************************************************/
33 /*                                                            */
34 /*  ChallengeString                                           */
35 /*                                                            */
36 /**************************************************************/
37
38 typedef struct EXTERN H235ChallengeString {
39    ASN1UINT numocts;
40    ASN1OCTET data[128];
41 } H235ChallengeString;
42
43 EXTERN int asn1PE_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue);
44
45 EXTERN int asn1PD_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue);
46
47 /**************************************************************/
48 /*                                                            */
49 /*  TimeStamp                                                 */
50 /*                                                            */
51 /**************************************************************/
52
53 typedef ASN1UINT H235TimeStamp;
54
55 EXTERN int asn1PE_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp value);
56
57 EXTERN int asn1PD_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp* pvalue);
58
59 /**************************************************************/
60 /*                                                            */
61 /*  RandomVal                                                 */
62 /*                                                            */
63 /**************************************************************/
64
65 typedef ASN1INT H235RandomVal;
66
67 EXTERN int asn1PE_H235RandomVal (OOCTXT* pctxt, H235RandomVal value);
68
69 EXTERN int asn1PD_H235RandomVal (OOCTXT* pctxt, H235RandomVal* pvalue);
70
71 /**************************************************************/
72 /*                                                            */
73 /*  Password                                                  */
74 /*                                                            */
75 /**************************************************************/
76
77 typedef ASN1BMPString H235Password;
78
79 EXTERN int asn1PE_H235Password (OOCTXT* pctxt, H235Password value);
80
81 EXTERN int asn1PD_H235Password (OOCTXT* pctxt, H235Password* pvalue);
82
83 /**************************************************************/
84 /*                                                            */
85 /*  EncodedPwdCertToken                                       */
86 /*                                                            */
87 /**************************************************************/
88
89 typedef ASN1OpenType H235EncodedPwdCertToken;
90
91 EXTERN int asn1PE_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken value);
92
93 EXTERN int asn1PD_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken* pvalue);
94
95 /**************************************************************/
96 /*                                                            */
97 /*  NonStandardParameter                                      */
98 /*                                                            */
99 /**************************************************************/
100
101 typedef struct EXTERN H235NonStandardParameter {
102    ASN1OBJID nonStandardIdentifier;
103    ASN1DynOctStr data;
104 } H235NonStandardParameter;
105
106 EXTERN int asn1PE_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue);
107
108 EXTERN int asn1PD_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue);
109
110 /**************************************************************/
111 /*                                                            */
112 /*  AuthenticationBES                                         */
113 /*                                                            */
114 /**************************************************************/
115
116 /* Choice tag constants */
117
118 #define T_H235AuthenticationBES_default_ 1
119 #define T_H235AuthenticationBES_radius  2
120 #define T_H235AuthenticationBES_extElem1 3
121
122 typedef struct EXTERN H235AuthenticationBES {
123    int t;
124 } H235AuthenticationBES;
125
126 EXTERN int asn1PE_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue);
127
128 EXTERN int asn1PD_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue);
129
130 /**************************************************************/
131 /*                                                            */
132 /*  AuthenticationMechanism                                   */
133 /*                                                            */
134 /**************************************************************/
135
136 /* Choice tag constants */
137
138 #define T_H235AuthenticationMechanism_dhExch 1
139 #define T_H235AuthenticationMechanism_pwdSymEnc 2
140 #define T_H235AuthenticationMechanism_pwdHash 3
141 #define T_H235AuthenticationMechanism_certSign 4
142 #define T_H235AuthenticationMechanism_ipsec 5
143 #define T_H235AuthenticationMechanism_tls 6
144 #define T_H235AuthenticationMechanism_nonStandard 7
145 #define T_H235AuthenticationMechanism_authenticationBES 8
146 #define T_H235AuthenticationMechanism_extElem1 9
147
148 typedef struct EXTERN H235AuthenticationMechanism {
149    int t;
150    union {
151       /* t = 1 */
152       /* t = 2 */
153       /* t = 3 */
154       /* t = 4 */
155       /* t = 5 */
156       /* t = 6 */
157       /* t = 7 */
158       H235NonStandardParameter *nonStandard;
159       /* t = 8 */
160       H235AuthenticationBES *authenticationBES;
161       /* t = 9 */
162    } u;
163 } H235AuthenticationMechanism;
164
165 EXTERN int asn1PE_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue);
166
167 EXTERN int asn1PD_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue);
168
169 /**************************************************************/
170 /*                                                            */
171 /*  DHset_halfkey                                             */
172 /*                                                            */
173 /**************************************************************/
174
175 typedef struct EXTERN H235DHset_halfkey {
176    ASN1UINT  numbits;
177    ASN1OCTET data[256];
178 } H235DHset_halfkey;
179
180 EXTERN int asn1PE_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue);
181
182 EXTERN int asn1PD_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue);
183
184 /**************************************************************/
185 /*                                                            */
186 /*  DHset_modSize                                             */
187 /*                                                            */
188 /**************************************************************/
189
190 typedef struct EXTERN H235DHset_modSize {
191    ASN1UINT  numbits;
192    ASN1OCTET data[256];
193 } H235DHset_modSize;
194
195 EXTERN int asn1PE_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue);
196
197 EXTERN int asn1PD_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue);
198
199 /**************************************************************/
200 /*                                                            */
201 /*  DHset_generator                                           */
202 /*                                                            */
203 /**************************************************************/
204
205 typedef struct EXTERN H235DHset_generator {
206    ASN1UINT  numbits;
207    ASN1OCTET data[256];
208 } H235DHset_generator;
209
210 EXTERN int asn1PE_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue);
211
212 EXTERN int asn1PD_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue);
213
214 /**************************************************************/
215 /*                                                            */
216 /*  DHset                                                     */
217 /*                                                            */
218 /**************************************************************/
219
220 typedef struct EXTERN H235DHset {
221    H235DHset_halfkey halfkey;
222    H235DHset_modSize modSize;
223    H235DHset_generator generator;
224 } H235DHset;
225
226 EXTERN int asn1PE_H235DHset (OOCTXT* pctxt, H235DHset* pvalue);
227
228 EXTERN int asn1PD_H235DHset (OOCTXT* pctxt, H235DHset* pvalue);
229
230 /**************************************************************/
231 /*                                                            */
232 /*  TypedCertificate                                          */
233 /*                                                            */
234 /**************************************************************/
235
236 typedef struct EXTERN H235TypedCertificate {
237    ASN1OBJID type;
238    ASN1DynOctStr certificate;
239 } H235TypedCertificate;
240
241 EXTERN int asn1PE_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue);
242
243 EXTERN int asn1PD_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue);
244
245 /**************************************************************/
246 /*                                                            */
247 /*  Identifier                                                */
248 /*                                                            */
249 /**************************************************************/
250
251 typedef ASN1BMPString H235Identifier;
252
253 EXTERN int asn1PE_H235Identifier (OOCTXT* pctxt, H235Identifier value);
254
255 EXTERN int asn1PD_H235Identifier (OOCTXT* pctxt, H235Identifier* pvalue);
256
257 /**************************************************************/
258 /*                                                            */
259 /*  ECpoint_x                                                 */
260 /*                                                            */
261 /**************************************************************/
262
263 typedef struct EXTERN H235ECpoint_x {
264    ASN1UINT  numbits;
265    ASN1OCTET data[64];
266 } H235ECpoint_x;
267
268 EXTERN int asn1PE_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue);
269
270 EXTERN int asn1PD_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue);
271
272 /**************************************************************/
273 /*                                                            */
274 /*  ECpoint_y                                                 */
275 /*                                                            */
276 /**************************************************************/
277
278 typedef struct EXTERN H235ECpoint_y {
279    ASN1UINT  numbits;
280    ASN1OCTET data[64];
281 } H235ECpoint_y;
282
283 EXTERN int asn1PE_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue);
284
285 EXTERN int asn1PD_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue);
286
287 /**************************************************************/
288 /*                                                            */
289 /*  ECpoint                                                   */
290 /*                                                            */
291 /**************************************************************/
292
293 typedef struct EXTERN H235ECpoint {
294    struct {
295       unsigned xPresent : 1;
296       unsigned yPresent : 1;
297    } m;
298    H235ECpoint_x x;
299    H235ECpoint_y y;
300 } H235ECpoint;
301
302 EXTERN int asn1PE_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue);
303
304 EXTERN int asn1PD_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue);
305
306 /**************************************************************/
307 /*                                                            */
308 /*  ECKASDH_eckasdhp_modulus                                  */
309 /*                                                            */
310 /**************************************************************/
311
312 typedef struct EXTERN H235ECKASDH_eckasdhp_modulus {
313    ASN1UINT  numbits;
314    ASN1OCTET data[64];
315 } H235ECKASDH_eckasdhp_modulus;
316
317 EXTERN int asn1PE_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue);
318
319 EXTERN int asn1PD_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue);
320
321 /**************************************************************/
322 /*                                                            */
323 /*  ECKASDH_eckasdhp_weierstrassA                             */
324 /*                                                            */
325 /**************************************************************/
326
327 typedef struct EXTERN H235ECKASDH_eckasdhp_weierstrassA {
328    ASN1UINT  numbits;
329    ASN1OCTET data[64];
330 } H235ECKASDH_eckasdhp_weierstrassA;
331
332 EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue);
333
334 EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue);
335
336 /**************************************************************/
337 /*                                                            */
338 /*  ECKASDH_eckasdhp_weierstrassB                             */
339 /*                                                            */
340 /**************************************************************/
341
342 typedef struct EXTERN H235ECKASDH_eckasdhp_weierstrassB {
343    ASN1UINT  numbits;
344    ASN1OCTET data[64];
345 } H235ECKASDH_eckasdhp_weierstrassB;
346
347 EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue);
348
349 EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue);
350
351 /**************************************************************/
352 /*                                                            */
353 /*  ECKASDH_eckasdhp                                          */
354 /*                                                            */
355 /**************************************************************/
356
357 typedef struct EXTERN H235ECKASDH_eckasdhp {
358    H235ECpoint public_key;
359    H235ECKASDH_eckasdhp_modulus modulus;
360    H235ECpoint base;
361    H235ECKASDH_eckasdhp_weierstrassA weierstrassA;
362    H235ECKASDH_eckasdhp_weierstrassB weierstrassB;
363 } H235ECKASDH_eckasdhp;
364
365 EXTERN int asn1PE_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue);
366
367 EXTERN int asn1PD_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue);
368
369 /**************************************************************/
370 /*                                                            */
371 /*  ECKASDH_eckasdh2_fieldSize                                */
372 /*                                                            */
373 /**************************************************************/
374
375 typedef struct EXTERN H235ECKASDH_eckasdh2_fieldSize {
376    ASN1UINT  numbits;
377    ASN1OCTET data[64];
378 } H235ECKASDH_eckasdh2_fieldSize;
379
380 EXTERN int asn1PE_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue);
381
382 EXTERN int asn1PD_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue);
383
384 /**************************************************************/
385 /*                                                            */
386 /*  ECKASDH_eckasdh2_weierstrassA                             */
387 /*                                                            */
388 /**************************************************************/
389
390 typedef struct EXTERN H235ECKASDH_eckasdh2_weierstrassA {
391    ASN1UINT  numbits;
392    ASN1OCTET data[64];
393 } H235ECKASDH_eckasdh2_weierstrassA;
394
395 EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue);
396
397 EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue);
398
399 /**************************************************************/
400 /*                                                            */
401 /*  ECKASDH_eckasdh2_weierstrassB                             */
402 /*                                                            */
403 /**************************************************************/
404
405 typedef struct EXTERN H235ECKASDH_eckasdh2_weierstrassB {
406    ASN1UINT  numbits;
407    ASN1OCTET data[64];
408 } H235ECKASDH_eckasdh2_weierstrassB;
409
410 EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue);
411
412 EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue);
413
414 /**************************************************************/
415 /*                                                            */
416 /*  ECKASDH_eckasdh2                                          */
417 /*                                                            */
418 /**************************************************************/
419
420 typedef struct EXTERN H235ECKASDH_eckasdh2 {
421    H235ECpoint public_key;
422    H235ECKASDH_eckasdh2_fieldSize fieldSize;
423    H235ECpoint base;
424    H235ECKASDH_eckasdh2_weierstrassA weierstrassA;
425    H235ECKASDH_eckasdh2_weierstrassB weierstrassB;
426 } H235ECKASDH_eckasdh2;
427
428 EXTERN int asn1PE_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue);
429
430 EXTERN int asn1PD_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue);
431
432 /**************************************************************/
433 /*                                                            */
434 /*  ECKASDH                                                   */
435 /*                                                            */
436 /**************************************************************/
437
438 /* Choice tag constants */
439
440 #define T_H235ECKASDH_eckasdhp          1
441 #define T_H235ECKASDH_eckasdh2          2
442 #define T_H235ECKASDH_extElem1          3
443
444 typedef struct EXTERN H235ECKASDH {
445    int t;
446    union {
447       /* t = 1 */
448       H235ECKASDH_eckasdhp *eckasdhp;
449       /* t = 2 */
450       H235ECKASDH_eckasdh2 *eckasdh2;
451       /* t = 3 */
452    } u;
453 } H235ECKASDH;
454
455 EXTERN int asn1PE_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue);
456
457 EXTERN int asn1PD_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue);
458
459 /**************************************************************/
460 /*                                                            */
461 /*  ClearToken                                                */
462 /*                                                            */
463 /**************************************************************/
464
465 typedef struct EXTERN H235ClearToken {
466    struct {
467       unsigned timeStampPresent : 1;
468       unsigned passwordPresent : 1;
469       unsigned dhkeyPresent : 1;
470       unsigned challengePresent : 1;
471       unsigned randomPresent : 1;
472       unsigned certificatePresent : 1;
473       unsigned generalIDPresent : 1;
474       unsigned nonStandardPresent : 1;
475       unsigned eckasdhkeyPresent : 1;
476       unsigned sendersIDPresent : 1;
477    } m;
478    ASN1OBJID tokenOID;
479    H235TimeStamp timeStamp;
480    H235Password password;
481    H235DHset dhkey;
482    H235ChallengeString challenge;
483    H235RandomVal random;
484    H235TypedCertificate certificate;
485    H235Identifier generalID;
486    H235NonStandardParameter nonStandard;
487    H235ECKASDH eckasdhkey;
488    H235Identifier sendersID;
489 } H235ClearToken;
490
491 EXTERN int asn1PE_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue);
492
493 EXTERN int asn1PD_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue);
494
495 /**************************************************************/
496 /*                                                            */
497 /*  IV8                                                       */
498 /*                                                            */
499 /**************************************************************/
500
501 typedef struct EXTERN H235IV8 {
502    ASN1UINT numocts;
503    ASN1OCTET data[8];
504 } H235IV8;
505
506 EXTERN int asn1PE_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue);
507
508 EXTERN int asn1PD_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue);
509
510 /**************************************************************/
511 /*                                                            */
512 /*  IV16                                                      */
513 /*                                                            */
514 /**************************************************************/
515
516 typedef struct EXTERN H235IV16 {
517    ASN1UINT numocts;
518    ASN1OCTET data[16];
519 } H235IV16;
520
521 EXTERN int asn1PE_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue);
522
523 EXTERN int asn1PD_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue);
524
525 /**************************************************************/
526 /*                                                            */
527 /*  Params                                                    */
528 /*                                                            */
529 /**************************************************************/
530
531 typedef struct EXTERN H235Params {
532    struct {
533       unsigned ranIntPresent : 1;
534       unsigned iv8Present : 1;
535       unsigned iv16Present : 1;
536    } m;
537    ASN1INT ranInt;
538    H235IV8 iv8;
539    H235IV16 iv16;
540 } H235Params;
541
542 EXTERN int asn1PE_H235Params (OOCTXT* pctxt, H235Params* pvalue);
543
544 EXTERN int asn1PD_H235Params (OOCTXT* pctxt, H235Params* pvalue);
545
546 /**************************************************************/
547 /*                                                            */
548 /*  ENCRYPTED                                                 */
549 /*                                                            */
550 /**************************************************************/
551
552 typedef struct EXTERN H235ENCRYPTED {
553    ASN1OBJID algorithmOID;
554    H235Params paramS;
555    ASN1DynOctStr encryptedData;
556 } H235ENCRYPTED;
557
558 EXTERN int asn1PE_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue);
559
560 EXTERN int asn1PD_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue);
561
562 /**************************************************************/
563 /*                                                            */
564 /*  CryptoToken_cryptoEncryptedToken                          */
565 /*                                                            */
566 /**************************************************************/
567
568 typedef struct EXTERN H235CryptoToken_cryptoEncryptedToken {
569    ASN1OBJID tokenOID;
570    H235ENCRYPTED token;
571 } H235CryptoToken_cryptoEncryptedToken;
572
573 EXTERN int asn1PE_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue);
574
575 EXTERN int asn1PD_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue);
576
577 /**************************************************************/
578 /*                                                            */
579 /*  EncodedGeneralToken                                       */
580 /*                                                            */
581 /**************************************************************/
582
583 typedef ASN1OpenType H235EncodedGeneralToken;
584
585 EXTERN int asn1PE_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken value);
586
587 EXTERN int asn1PD_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken* pvalue);
588
589 /**************************************************************/
590 /*                                                            */
591 /*  CryptoToken_cryptoSignedToken_token                       */
592 /*                                                            */
593 /**************************************************************/
594
595 typedef struct EXTERN H235CryptoToken_cryptoSignedToken_token {
596    H235EncodedGeneralToken toBeSigned;
597    ASN1OBJID algorithmOID;
598    H235Params paramS;
599    ASN1DynBitStr signature;
600 } H235CryptoToken_cryptoSignedToken_token;
601
602 EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue);
603
604 EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue);
605
606 /**************************************************************/
607 /*                                                            */
608 /*  CryptoToken_cryptoSignedToken                             */
609 /*                                                            */
610 /**************************************************************/
611
612 typedef struct EXTERN H235CryptoToken_cryptoSignedToken {
613    ASN1OBJID tokenOID;
614    H235CryptoToken_cryptoSignedToken_token token;
615 } H235CryptoToken_cryptoSignedToken;
616
617 EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue);
618
619 EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue);
620
621 /**************************************************************/
622 /*                                                            */
623 /*  HASHED                                                    */
624 /*                                                            */
625 /**************************************************************/
626
627 typedef struct EXTERN H235HASHED {
628    ASN1OBJID algorithmOID;
629    H235Params paramS;
630    ASN1DynBitStr hash;
631 } H235HASHED;
632
633 EXTERN int asn1PE_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue);
634
635 EXTERN int asn1PD_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue);
636
637 /**************************************************************/
638 /*                                                            */
639 /*  CryptoToken_cryptoHashedToken                             */
640 /*                                                            */
641 /**************************************************************/
642
643 typedef struct EXTERN H235CryptoToken_cryptoHashedToken {
644    ASN1OBJID tokenOID;
645    H235ClearToken hashedVals;
646    H235HASHED token;
647 } H235CryptoToken_cryptoHashedToken;
648
649 EXTERN int asn1PE_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue);
650
651 EXTERN int asn1PD_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue);
652
653 /**************************************************************/
654 /*                                                            */
655 /*  CryptoToken                                               */
656 /*                                                            */
657 /**************************************************************/
658
659 /* Choice tag constants */
660
661 #define T_H235CryptoToken_cryptoEncryptedToken 1
662 #define T_H235CryptoToken_cryptoSignedToken 2
663 #define T_H235CryptoToken_cryptoHashedToken 3
664 #define T_H235CryptoToken_cryptoPwdEncr 4
665 #define T_H235CryptoToken_extElem1      5
666
667 typedef struct EXTERN H235CryptoToken {
668    int t;
669    union {
670       /* t = 1 */
671       H235CryptoToken_cryptoEncryptedToken *cryptoEncryptedToken;
672       /* t = 2 */
673       H235CryptoToken_cryptoSignedToken *cryptoSignedToken;
674       /* t = 3 */
675       H235CryptoToken_cryptoHashedToken *cryptoHashedToken;
676       /* t = 4 */
677       H235ENCRYPTED *cryptoPwdEncr;
678       /* t = 5 */
679    } u;
680 } H235CryptoToken;
681
682 EXTERN int asn1PE_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue);
683
684 EXTERN int asn1PD_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue);
685
686 #ifdef __cplusplus
687 }
688 #endif
689
690 #endif