blob: fdca0bed9c29d5ec6c6690791dc02088234d479a [file] [log] [blame]
Lev Walkin07aaa342006-10-09 12:52:15 +00001
2/*** <<< INCLUDES [PDU] >>> ***/
3
4#include <IA5String.h>
5#include <VisibleString.h>
6#include <PrintableString.h>
7#include <NumericString.h>
8#include <UTF8String.h>
Lev Walkin3a4689a2006-11-24 11:20:27 +00009#include <BMPString.h>
10#include <UniversalString.h>
Lev Walkin2a744a72013-03-27 01:56:23 -070011#include <NativeReal.h>
Lev Walkin07aaa342006-10-09 12:52:15 +000012#include <OBJECT_IDENTIFIER.h>
13#include <asn_SEQUENCE_OF.h>
14#include <constr_SEQUENCE_OF.h>
15#include <constr_SEQUENCE.h>
16
17/*** <<< FWD-DECLS [PDU] >>> ***/
18
19struct PDU;
20
21/*** <<< TYPE-DECLS [PDU] >>> ***/
22
23typedef struct PDU {
24 struct many {
25 A_SEQUENCE_OF(struct PDU) list;
26
27 /* Context for parsing across buffer boundaries */
28 asn_struct_ctx_t _asn_ctx;
29 } *many;
30 IA5String_t *ia5 /* OPTIONAL */;
31 IA5String_t *ia5_c /* OPTIONAL */;
32 IA5String_t *ia5_ce /* OPTIONAL */;
33 IA5String_t *ia5_ir /* OPTIONAL */;
34 VisibleString_t *vs /* OPTIONAL */;
35 VisibleString_t *vs_c /* OPTIONAL */;
36 VisibleString_t *vs_ce /* OPTIONAL */;
37 VisibleString_t *vs_ir /* OPTIONAL */;
38 PrintableString_t *pr /* OPTIONAL */;
39 PrintableString_t *pr_c /* OPTIONAL */;
40 PrintableString_t *pr_ir /* OPTIONAL */;
41 NumericString_t *ns /* OPTIONAL */;
42 NumericString_t *ns_c /* OPTIONAL */;
43 NumericString_t *ns_ce /* OPTIONAL */;
44 NumericString_t *ns_ir /* OPTIONAL */;
45 UTF8String_t *ut_c /* OPTIONAL */;
46 UTF8String_t *ut_ce /* OPTIONAL */;
47 UTF8String_t *ut_ir /* OPTIONAL */;
Lev Walkin3a4689a2006-11-24 11:20:27 +000048 BMPString_t *bm /* OPTIONAL */;
49 BMPString_t *bm_c /* OPTIONAL */;
50 BMPString_t *bm_cs /* OPTIONAL */;
51 BMPString_t *bm_ce /* OPTIONAL */;
52 BMPString_t *bm_ir /* OPTIONAL */;
53 UniversalString_t *us /* OPTIONAL */;
54 UniversalString_t *us_c /* OPTIONAL */;
55 UniversalString_t *us_cs /* OPTIONAL */;
56 UniversalString_t *us_ce /* OPTIONAL */;
57 UniversalString_t *us_ir /* OPTIONAL */;
Lev Walkin2a744a72013-03-27 01:56:23 -070058 double *real /* OPTIONAL */;
Lev Walkin07aaa342006-10-09 12:52:15 +000059 OBJECT_IDENTIFIER_t *oid /* OPTIONAL */;
60
61 /* Context for parsing across buffer boundaries */
62 asn_struct_ctx_t _asn_ctx;
63} PDU_t;
64
65/*** <<< FUNC-DECLS [PDU] >>> ***/
66
67extern asn_TYPE_descriptor_t asn_DEF_PDU;
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +080068extern asn_SEQUENCE_specifics_t asn_SPC_PDU_specs_1;
69extern asn_TYPE_member_t asn_MBR_PDU_1[31];
Lev Walkin07aaa342006-10-09 12:52:15 +000070
71/*** <<< POST-INCLUDE [PDU] >>> ***/
72
73#include "PDU.h"
74
75/*** <<< CTABLES [PDU] >>> ***/
76
77static int check_permitted_alphabet_5(const void *sptr) {
78 /* The underlying type is IA5String */
79 const IA5String_t *st = (const IA5String_t *)sptr;
80 const uint8_t *ch = st->buf;
81 const uint8_t *end = ch + st->size;
82
83 for(; ch < end; ch++) {
84 uint8_t cv = *ch;
85 if(!(cv >= 65 && cv <= 90)) return -1;
86 }
87 return 0;
88}
89
90static int check_permitted_alphabet_6(const void *sptr) {
91 /* The underlying type is IA5String */
92 const IA5String_t *st = (const IA5String_t *)sptr;
93 const uint8_t *ch = st->buf;
94 const uint8_t *end = ch + st->size;
95
96 for(; ch < end; ch++) {
97 uint8_t cv = *ch;
98 if(!(cv >= 65 && cv <= 90)) return -1;
99 }
100 return 0;
101}
102
Lev Walkina7591b52014-10-12 18:37:35 -0700103static const int permitted_alphabet_table_7[256] = {
Lev Walkin07aaa342006-10-09 12:52:15 +0000104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
108 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
109 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
110};
Lev Walkina7591b52014-10-12 18:37:35 -0700111static const int permitted_alphabet_code2value_7[5] = {
Lev Walkin07aaa342006-10-09 12:52:15 +000011265,66,88,89,90,};
113
114
115static int check_permitted_alphabet_7(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700116 const int *table = permitted_alphabet_table_7;
Lev Walkin07aaa342006-10-09 12:52:15 +0000117 /* The underlying type is IA5String */
118 const IA5String_t *st = (const IA5String_t *)sptr;
119 const uint8_t *ch = st->buf;
120 const uint8_t *end = ch + st->size;
121
122 for(; ch < end; ch++) {
123 uint8_t cv = *ch;
124 if(!table[cv]) return -1;
125 }
126 return 0;
127}
128
129static int check_permitted_alphabet_9(const void *sptr) {
130 /* The underlying type is VisibleString */
131 const VisibleString_t *st = (const VisibleString_t *)sptr;
132 const uint8_t *ch = st->buf;
133 const uint8_t *end = ch + st->size;
134
135 for(; ch < end; ch++) {
136 uint8_t cv = *ch;
137 if(!(cv >= 65 && cv <= 90)) return -1;
138 }
139 return 0;
140}
141
142static int check_permitted_alphabet_10(const void *sptr) {
143 /* The underlying type is VisibleString */
144 const VisibleString_t *st = (const VisibleString_t *)sptr;
145 const uint8_t *ch = st->buf;
146 const uint8_t *end = ch + st->size;
147
148 for(; ch < end; ch++) {
149 uint8_t cv = *ch;
150 if(!(cv >= 65 && cv <= 90)) return -1;
151 }
152 return 0;
153}
154
Lev Walkina7591b52014-10-12 18:37:35 -0700155static const int permitted_alphabet_table_11[256] = {
Lev Walkin07aaa342006-10-09 12:52:15 +0000156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
160 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
161 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
162};
Lev Walkina7591b52014-10-12 18:37:35 -0700163static const int permitted_alphabet_code2value_11[5] = {
Lev Walkin07aaa342006-10-09 12:52:15 +000016465,66,88,89,90,};
165
166
167static int check_permitted_alphabet_11(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700168 const int *table = permitted_alphabet_table_11;
Lev Walkin07aaa342006-10-09 12:52:15 +0000169 /* The underlying type is VisibleString */
170 const VisibleString_t *st = (const VisibleString_t *)sptr;
171 const uint8_t *ch = st->buf;
172 const uint8_t *end = ch + st->size;
173
174 for(; ch < end; ch++) {
175 uint8_t cv = *ch;
176 if(!table[cv]) return -1;
177 }
178 return 0;
179}
180
181static int check_permitted_alphabet_13(const void *sptr) {
182 /* The underlying type is PrintableString */
183 const PrintableString_t *st = (const PrintableString_t *)sptr;
184 const uint8_t *ch = st->buf;
185 const uint8_t *end = ch + st->size;
186
187 for(; ch < end; ch++) {
188 uint8_t cv = *ch;
189 if(!(cv >= 65 && cv <= 90)) return -1;
190 }
191 return 0;
192}
193
Lev Walkina7591b52014-10-12 18:37:35 -0700194static const int permitted_alphabet_table_14[256] = {
Lev Walkin07aaa342006-10-09 12:52:15 +0000195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
199 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
200 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
201};
Lev Walkina7591b52014-10-12 18:37:35 -0700202static const int permitted_alphabet_code2value_14[5] = {
Lev Walkin07aaa342006-10-09 12:52:15 +000020365,66,88,89,90,};
204
205
206static int check_permitted_alphabet_14(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700207 const int *table = permitted_alphabet_table_14;
Lev Walkin07aaa342006-10-09 12:52:15 +0000208 /* The underlying type is PrintableString */
209 const PrintableString_t *st = (const PrintableString_t *)sptr;
210 const uint8_t *ch = st->buf;
211 const uint8_t *end = ch + st->size;
212
213 for(; ch < end; ch++) {
214 uint8_t cv = *ch;
215 if(!table[cv]) return -1;
216 }
217 return 0;
218}
219
220static int check_permitted_alphabet_16(const void *sptr) {
221 /* The underlying type is NumericString */
222 const NumericString_t *st = (const NumericString_t *)sptr;
223 const uint8_t *ch = st->buf;
224 const uint8_t *end = ch + st->size;
225
226 for(; ch < end; ch++) {
227 uint8_t cv = *ch;
228 if(!(cv >= 53 && cv <= 57)) return -1;
229 }
230 return 0;
231}
232
233static int check_permitted_alphabet_17(const void *sptr) {
234 /* The underlying type is NumericString */
235 const NumericString_t *st = (const NumericString_t *)sptr;
236 const uint8_t *ch = st->buf;
237 const uint8_t *end = ch + st->size;
238
239 for(; ch < end; ch++) {
240 uint8_t cv = *ch;
241 if(!(cv >= 53 && cv <= 57)) return -1;
242 }
243 return 0;
244}
245
Lev Walkina7591b52014-10-12 18:37:35 -0700246static const int permitted_alphabet_table_18[256] = {
Lev Walkin07aaa342006-10-09 12:52:15 +0000247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
250 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, /* 1 9 */
251};
Lev Walkina7591b52014-10-12 18:37:35 -0700252static const int permitted_alphabet_code2value_18[2] = {
Lev Walkin07aaa342006-10-09 12:52:15 +000025349,57,};
254
255
256static int check_permitted_alphabet_18(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700257 const int *table = permitted_alphabet_table_18;
Lev Walkin07aaa342006-10-09 12:52:15 +0000258 /* The underlying type is NumericString */
259 const NumericString_t *st = (const NumericString_t *)sptr;
260 const uint8_t *ch = st->buf;
261 const uint8_t *end = ch + st->size;
262
263 for(; ch < end; ch++) {
264 uint8_t cv = *ch;
265 if(!table[cv]) return -1;
266 }
267 return 0;
268}
269
Lev Walkina7591b52014-10-12 18:37:35 -0700270static const int permitted_alphabet_table_21[128] = {
Lev Walkin07aaa342006-10-09 12:52:15 +0000271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
275 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A */
276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, /* Z */
277};
278
279static int check_permitted_alphabet_21(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700280 const int *table = permitted_alphabet_table_21;
Lev Walkin07aaa342006-10-09 12:52:15 +0000281 /* The underlying type is UTF8String */
282 const UTF8String_t *st = (const UTF8String_t *)sptr;
283 const uint8_t *ch = st->buf;
284 const uint8_t *end = ch + st->size;
285
286 for(; ch < end; ch++) {
287 uint8_t cv = *ch;
288 if(cv >= 0x80) return -1;
289 if(!table[cv]) return -1;
290 }
291 return 0;
292}
293
Lev Walkin3a4689a2006-11-24 11:20:27 +0000294static int check_permitted_alphabet_23(const void *sptr) {
295 /* The underlying type is BMPString */
296 const BMPString_t *st = (const BMPString_t *)sptr;
297 const uint8_t *ch = st->buf;
298 const uint8_t *end = ch + st->size;
299
300 if(st->size % 2) return -1; /* (size%2)! */
301 for(; ch < end; ch += 2) {
302 uint16_t cv = (ch[0] << 8)
303 | ch[1];
304 if(!(cv >= 65 && cv <= 90)) return -1;
305 }
306 return 0;
307}
308
309static int check_permitted_alphabet_24(const void *sptr) {
310 /* The underlying type is BMPString */
311 const BMPString_t *st = (const BMPString_t *)sptr;
312 const uint8_t *ch = st->buf;
313 const uint8_t *end = ch + st->size;
314
315 if(st->size % 2) return -1; /* (size%2)! */
316 for(; ch < end; ch += 2) {
317 uint16_t cv = (ch[0] << 8)
318 | ch[1];
319 if(!(cv <= 65533)) return -1;
320 }
321 return 0;
322}
323
324static int check_permitted_alphabet_25(const void *sptr) {
325 /* The underlying type is BMPString */
326 const BMPString_t *st = (const BMPString_t *)sptr;
327 const uint8_t *ch = st->buf;
328 const uint8_t *end = ch + st->size;
329
330 if(st->size % 2) return -1; /* (size%2)! */
331 for(; ch < end; ch += 2) {
332 uint16_t cv = (ch[0] << 8)
333 | ch[1];
334 if(!(cv >= 65 && cv <= 90)) return -1;
335 }
336 return 0;
337}
338
Lev Walkina7591b52014-10-12 18:37:35 -0700339static const int permitted_alphabet_table_26[256] = {
Lev Walkin3a4689a2006-11-24 11:20:27 +0000340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
344 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
345 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
346};
Lev Walkina7591b52014-10-12 18:37:35 -0700347static const int permitted_alphabet_code2value_26[5] = {
Lev Walkin3a4689a2006-11-24 11:20:27 +000034865,66,88,89,90,};
349
350
351static int check_permitted_alphabet_26(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700352 const int *table = permitted_alphabet_table_26;
Lev Walkin3a4689a2006-11-24 11:20:27 +0000353 /* The underlying type is BMPString */
354 const BMPString_t *st = (const BMPString_t *)sptr;
355 const uint8_t *ch = st->buf;
356 const uint8_t *end = ch + st->size;
357
358 if(st->size % 2) return -1; /* (size%2)! */
359 for(; ch < end; ch += 2) {
360 uint16_t cv = (ch[0] << 8)
361 | ch[1];
362 if(cv > 255) return -1;
363 if(!table[cv]) return -1;
364 }
365 return 0;
366}
367
368static int check_permitted_alphabet_28(const void *sptr) {
369 /* The underlying type is UniversalString */
370 const UniversalString_t *st = (const UniversalString_t *)sptr;
371 const uint8_t *ch = st->buf;
372 const uint8_t *end = ch + st->size;
373
374 if(st->size % 4) return -1; /* (size%4)! */
375 for(; ch < end; ch += 4) {
376 uint32_t cv = (ch[0] << 24)
377 | (ch[1] << 16)
378 | (ch[2] << 8)
379 | ch[3];
380 if(!(cv >= 65 && cv <= 90)) return -1;
381 }
382 return 0;
383}
384
385static int check_permitted_alphabet_29(const void *sptr) {
386 /* The underlying type is UniversalString */
387 const UniversalString_t *st = (const UniversalString_t *)sptr;
388 const uint8_t *ch = st->buf;
389 const uint8_t *end = ch + st->size;
390
391 if(st->size % 4) return -1; /* (size%4)! */
392 for(; ch < end; ch += 4) {
393 uint32_t cv = (ch[0] << 24)
394 | (ch[1] << 16)
395 | (ch[2] << 8)
396 | ch[3];
397 if(!(1 /* Constraint matches natural range of cv */)) return -1;
398 }
399 return 0;
400}
401
402static int check_permitted_alphabet_30(const void *sptr) {
403 /* The underlying type is UniversalString */
404 const UniversalString_t *st = (const UniversalString_t *)sptr;
405 const uint8_t *ch = st->buf;
406 const uint8_t *end = ch + st->size;
407
408 if(st->size % 4) return -1; /* (size%4)! */
409 for(; ch < end; ch += 4) {
410 uint32_t cv = (ch[0] << 24)
411 | (ch[1] << 16)
412 | (ch[2] << 8)
413 | ch[3];
414 if(!(cv >= 65 && cv <= 90)) return -1;
415 }
416 return 0;
417}
418
Lev Walkina7591b52014-10-12 18:37:35 -0700419static const int permitted_alphabet_table_31[256] = {
Lev Walkin3a4689a2006-11-24 11:20:27 +0000420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
424 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* AB */
425 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, /* XYZ */
426};
Lev Walkina7591b52014-10-12 18:37:35 -0700427static const int permitted_alphabet_code2value_31[5] = {
Lev Walkin3a4689a2006-11-24 11:20:27 +000042865,66,88,89,90,};
429
430
431static int check_permitted_alphabet_31(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700432 const int *table = permitted_alphabet_table_31;
Lev Walkin3a4689a2006-11-24 11:20:27 +0000433 /* The underlying type is UniversalString */
434 const UniversalString_t *st = (const UniversalString_t *)sptr;
435 const uint8_t *ch = st->buf;
436 const uint8_t *end = ch + st->size;
437
438 if(st->size % 4) return -1; /* (size%4)! */
439 for(; ch < end; ch += 4) {
440 uint32_t cv = (ch[0] << 24)
441 | (ch[1] << 16)
442 | (ch[2] << 8)
443 | ch[3];
444 if(cv > 255) return -1;
445 if(!table[cv]) return -1;
446 }
447 return 0;
448}
449
Lev Walkin07aaa342006-10-09 12:52:15 +0000450
451/*** <<< CODE [PDU] >>> ***/
452
453static int
454memb_ia5_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
455 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
456 const IA5String_t *st = (const IA5String_t *)sptr;
457
458 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700459 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000460 "%s: value not given (%s:%d)",
461 td->name, __FILE__, __LINE__);
462 return -1;
463 }
464
465
466 if(!check_permitted_alphabet_5(st)) {
467 /* Constraint check succeeded */
468 return 0;
469 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700470 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000471 "%s: constraint failed (%s:%d)",
472 td->name, __FILE__, __LINE__);
473 return -1;
474 }
475}
476
477static int
478memb_ia5_ce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
479 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
480 const IA5String_t *st = (const IA5String_t *)sptr;
481
482 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700483 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000484 "%s: value not given (%s:%d)",
485 td->name, __FILE__, __LINE__);
486 return -1;
487 }
488
489
490 if(!check_permitted_alphabet_6(st)) {
491 /* Constraint check succeeded */
492 return 0;
493 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700494 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000495 "%s: constraint failed (%s:%d)",
496 td->name, __FILE__, __LINE__);
497 return -1;
498 }
499}
500
501static int
502memb_ia5_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
503 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
504 const IA5String_t *st = (const IA5String_t *)sptr;
505
506 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700507 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000508 "%s: value not given (%s:%d)",
509 td->name, __FILE__, __LINE__);
510 return -1;
511 }
512
513
514 if(!check_permitted_alphabet_7(st)) {
515 /* Constraint check succeeded */
516 return 0;
517 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700518 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000519 "%s: constraint failed (%s:%d)",
520 td->name, __FILE__, __LINE__);
521 return -1;
522 }
523}
524
525static int asn_PER_MAP_ia5_ir_7_v2c(unsigned int value) {
526 if(value >= sizeof(permitted_alphabet_table_7)/sizeof(permitted_alphabet_table_7[0]))
527 return -1;
528 return permitted_alphabet_table_7[value] - 1;
529}
530static int asn_PER_MAP_ia5_ir_7_c2v(unsigned int code) {
531 if(code >= sizeof(permitted_alphabet_code2value_7)/sizeof(permitted_alphabet_code2value_7[0]))
532 return -1;
533 return permitted_alphabet_code2value_7[code];
534}
535static int
536memb_vs_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
537 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
538 const VisibleString_t *st = (const VisibleString_t *)sptr;
539
540 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700541 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000542 "%s: value not given (%s:%d)",
543 td->name, __FILE__, __LINE__);
544 return -1;
545 }
546
547
548 if(!check_permitted_alphabet_9(st)) {
549 /* Constraint check succeeded */
550 return 0;
551 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700552 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000553 "%s: constraint failed (%s:%d)",
554 td->name, __FILE__, __LINE__);
555 return -1;
556 }
557}
558
559static int
560memb_vs_ce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
561 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
562 const VisibleString_t *st = (const VisibleString_t *)sptr;
563
564 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700565 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000566 "%s: value not given (%s:%d)",
567 td->name, __FILE__, __LINE__);
568 return -1;
569 }
570
571
572 if(!check_permitted_alphabet_10(st)) {
573 /* Constraint check succeeded */
574 return 0;
575 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700576 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000577 "%s: constraint failed (%s:%d)",
578 td->name, __FILE__, __LINE__);
579 return -1;
580 }
581}
582
583static int
584memb_vs_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
585 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
586 const VisibleString_t *st = (const VisibleString_t *)sptr;
587
588 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700589 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000590 "%s: value not given (%s:%d)",
591 td->name, __FILE__, __LINE__);
592 return -1;
593 }
594
595
596 if(!check_permitted_alphabet_11(st)) {
597 /* Constraint check succeeded */
598 return 0;
599 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700600 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000601 "%s: constraint failed (%s:%d)",
602 td->name, __FILE__, __LINE__);
603 return -1;
604 }
605}
606
607static int asn_PER_MAP_vs_ir_11_v2c(unsigned int value) {
608 if(value >= sizeof(permitted_alphabet_table_11)/sizeof(permitted_alphabet_table_11[0]))
609 return -1;
610 return permitted_alphabet_table_11[value] - 1;
611}
612static int asn_PER_MAP_vs_ir_11_c2v(unsigned int code) {
613 if(code >= sizeof(permitted_alphabet_code2value_11)/sizeof(permitted_alphabet_code2value_11[0]))
614 return -1;
615 return permitted_alphabet_code2value_11[code];
616}
617static int
618memb_pr_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
619 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
620 const PrintableString_t *st = (const PrintableString_t *)sptr;
621
622 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700623 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000624 "%s: value not given (%s:%d)",
625 td->name, __FILE__, __LINE__);
626 return -1;
627 }
628
629
630 if(!check_permitted_alphabet_13(st)) {
631 /* Constraint check succeeded */
632 return 0;
633 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700634 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000635 "%s: constraint failed (%s:%d)",
636 td->name, __FILE__, __LINE__);
637 return -1;
638 }
639}
640
641static int
642memb_pr_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
643 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
644 const PrintableString_t *st = (const PrintableString_t *)sptr;
645
646 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700647 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000648 "%s: value not given (%s:%d)",
649 td->name, __FILE__, __LINE__);
650 return -1;
651 }
652
653
654 if(!check_permitted_alphabet_14(st)) {
655 /* Constraint check succeeded */
656 return 0;
657 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700658 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000659 "%s: constraint failed (%s:%d)",
660 td->name, __FILE__, __LINE__);
661 return -1;
662 }
663}
664
665static int asn_PER_MAP_pr_ir_14_v2c(unsigned int value) {
666 if(value >= sizeof(permitted_alphabet_table_14)/sizeof(permitted_alphabet_table_14[0]))
667 return -1;
668 return permitted_alphabet_table_14[value] - 1;
669}
670static int asn_PER_MAP_pr_ir_14_c2v(unsigned int code) {
671 if(code >= sizeof(permitted_alphabet_code2value_14)/sizeof(permitted_alphabet_code2value_14[0]))
672 return -1;
673 return permitted_alphabet_code2value_14[code];
674}
675static int
676memb_ns_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
677 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
678 const NumericString_t *st = (const NumericString_t *)sptr;
679
680 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700681 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000682 "%s: value not given (%s:%d)",
683 td->name, __FILE__, __LINE__);
684 return -1;
685 }
686
687
688 if(!check_permitted_alphabet_16(st)) {
689 /* Constraint check succeeded */
690 return 0;
691 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700692 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000693 "%s: constraint failed (%s:%d)",
694 td->name, __FILE__, __LINE__);
695 return -1;
696 }
697}
698
699static int
700memb_ns_ce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
701 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
702 const NumericString_t *st = (const NumericString_t *)sptr;
703
704 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700705 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000706 "%s: value not given (%s:%d)",
707 td->name, __FILE__, __LINE__);
708 return -1;
709 }
710
711
712 if(!check_permitted_alphabet_17(st)) {
713 /* Constraint check succeeded */
714 return 0;
715 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700716 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000717 "%s: constraint failed (%s:%d)",
718 td->name, __FILE__, __LINE__);
719 return -1;
720 }
721}
722
723static int
724memb_ns_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
725 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
726 const NumericString_t *st = (const NumericString_t *)sptr;
727
728 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700729 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000730 "%s: value not given (%s:%d)",
731 td->name, __FILE__, __LINE__);
732 return -1;
733 }
734
735
736 if(!check_permitted_alphabet_18(st)) {
737 /* Constraint check succeeded */
738 return 0;
739 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700740 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000741 "%s: constraint failed (%s:%d)",
742 td->name, __FILE__, __LINE__);
743 return -1;
744 }
745}
746
747static int asn_PER_MAP_ns_ir_18_v2c(unsigned int value) {
748 if(value >= sizeof(permitted_alphabet_table_18)/sizeof(permitted_alphabet_table_18[0]))
749 return -1;
750 return permitted_alphabet_table_18[value] - 1;
751}
752static int asn_PER_MAP_ns_ir_18_c2v(unsigned int code) {
753 if(code >= sizeof(permitted_alphabet_code2value_18)/sizeof(permitted_alphabet_code2value_18[0]))
754 return -1;
755 return permitted_alphabet_code2value_18[code];
756}
757static int
758memb_ut_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
759 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
760 const UTF8String_t *st = (const UTF8String_t *)sptr;
761 size_t size;
762
763 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700764 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000765 "%s: value not given (%s:%d)",
766 td->name, __FILE__, __LINE__);
767 return -1;
768 }
769
770 size = UTF8String_length(st);
771 if((ssize_t)size < 0) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700772 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000773 "%s: UTF-8: broken encoding (%s:%d)",
774 td->name, __FILE__, __LINE__);
775 return -1;
776 }
777
778 if((size == 6)) {
779 /* Constraint check succeeded */
780 return 0;
781 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700782 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000783 "%s: constraint failed (%s:%d)",
784 td->name, __FILE__, __LINE__);
785 return -1;
786 }
787}
788
789static int
790memb_ut_ce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
791 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
792 const UTF8String_t *st = (const UTF8String_t *)sptr;
793 size_t size;
794
795 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700796 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000797 "%s: value not given (%s:%d)",
798 td->name, __FILE__, __LINE__);
799 return -1;
800 }
801
802 size = UTF8String_length(st);
803 if((ssize_t)size < 0) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700804 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000805 "%s: UTF-8: broken encoding (%s:%d)",
806 td->name, __FILE__, __LINE__);
807 return -1;
808 }
809
810 if((size == 6)) {
811 /* Constraint check succeeded */
812 return 0;
813 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700814 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000815 "%s: constraint failed (%s:%d)",
816 td->name, __FILE__, __LINE__);
817 return -1;
818 }
819}
820
821static int
822memb_ut_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
823 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
824 const UTF8String_t *st = (const UTF8String_t *)sptr;
825
826 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700827 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000828 "%s: value not given (%s:%d)",
829 td->name, __FILE__, __LINE__);
830 return -1;
831 }
832
833
834 if(!check_permitted_alphabet_21(st)) {
835 /* Constraint check succeeded */
836 return 0;
837 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700838 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin07aaa342006-10-09 12:52:15 +0000839 "%s: constraint failed (%s:%d)",
840 td->name, __FILE__, __LINE__);
841 return -1;
842 }
843}
844
Lev Walkin3a4689a2006-11-24 11:20:27 +0000845static int
846memb_bm_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
847 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
848 const BMPString_t *st = (const BMPString_t *)sptr;
849
850 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700851 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000852 "%s: value not given (%s:%d)",
853 td->name, __FILE__, __LINE__);
854 return -1;
855 }
856
857
858 if(!check_permitted_alphabet_23(st)) {
859 /* Constraint check succeeded */
860 return 0;
861 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700862 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000863 "%s: constraint failed (%s:%d)",
864 td->name, __FILE__, __LINE__);
865 return -1;
866 }
867}
868
869static int
870memb_bm_cs_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
871 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
872 const BMPString_t *st = (const BMPString_t *)sptr;
873 size_t size;
874
875 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700876 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000877 "%s: value not given (%s:%d)",
878 td->name, __FILE__, __LINE__);
879 return -1;
880 }
881
882 size = st->size >> 1; /* 2 byte per character */
883
884 if((size == 6)
885 && !check_permitted_alphabet_24(st)) {
886 /* Constraint check succeeded */
887 return 0;
888 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700889 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000890 "%s: constraint failed (%s:%d)",
891 td->name, __FILE__, __LINE__);
892 return -1;
893 }
894}
895
896static int
897memb_bm_ce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
898 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
899 const BMPString_t *st = (const BMPString_t *)sptr;
900
901 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700902 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000903 "%s: value not given (%s:%d)",
904 td->name, __FILE__, __LINE__);
905 return -1;
906 }
907
908
909 if(!check_permitted_alphabet_25(st)) {
910 /* Constraint check succeeded */
911 return 0;
912 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700913 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000914 "%s: constraint failed (%s:%d)",
915 td->name, __FILE__, __LINE__);
916 return -1;
917 }
918}
919
920static int
921memb_bm_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
922 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
923 const BMPString_t *st = (const BMPString_t *)sptr;
924
925 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700926 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000927 "%s: value not given (%s:%d)",
928 td->name, __FILE__, __LINE__);
929 return -1;
930 }
931
932
933 if(!check_permitted_alphabet_26(st)) {
934 /* Constraint check succeeded */
935 return 0;
936 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700937 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000938 "%s: constraint failed (%s:%d)",
939 td->name, __FILE__, __LINE__);
940 return -1;
941 }
942}
943
944static int asn_PER_MAP_bm_ir_26_v2c(unsigned int value) {
945 if(value >= sizeof(permitted_alphabet_table_26)/sizeof(permitted_alphabet_table_26[0]))
946 return -1;
947 return permitted_alphabet_table_26[value] - 1;
948}
949static int asn_PER_MAP_bm_ir_26_c2v(unsigned int code) {
950 if(code >= sizeof(permitted_alphabet_code2value_26)/sizeof(permitted_alphabet_code2value_26[0]))
951 return -1;
952 return permitted_alphabet_code2value_26[code];
953}
954static int
955memb_us_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
956 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
957 const UniversalString_t *st = (const UniversalString_t *)sptr;
958
959 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700960 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000961 "%s: value not given (%s:%d)",
962 td->name, __FILE__, __LINE__);
963 return -1;
964 }
965
966
967 if(!check_permitted_alphabet_28(st)) {
968 /* Constraint check succeeded */
969 return 0;
970 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700971 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000972 "%s: constraint failed (%s:%d)",
973 td->name, __FILE__, __LINE__);
974 return -1;
975 }
976}
977
978static int
979memb_us_cs_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
980 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
981 const UniversalString_t *st = (const UniversalString_t *)sptr;
982 size_t size;
983
984 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700985 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000986 "%s: value not given (%s:%d)",
987 td->name, __FILE__, __LINE__);
988 return -1;
989 }
990
991 size = st->size >> 2; /* 4 byte per character */
992
993 if((size == 6)
994 && !check_permitted_alphabet_29(st)) {
995 /* Constraint check succeeded */
996 return 0;
997 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700998 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +0000999 "%s: constraint failed (%s:%d)",
1000 td->name, __FILE__, __LINE__);
1001 return -1;
1002 }
1003}
1004
1005static int
1006memb_us_ce_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
1007 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
1008 const UniversalString_t *st = (const UniversalString_t *)sptr;
1009
1010 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001011 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +00001012 "%s: value not given (%s:%d)",
1013 td->name, __FILE__, __LINE__);
1014 return -1;
1015 }
1016
1017
1018 if(!check_permitted_alphabet_30(st)) {
1019 /* Constraint check succeeded */
1020 return 0;
1021 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001022 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +00001023 "%s: constraint failed (%s:%d)",
1024 td->name, __FILE__, __LINE__);
1025 return -1;
1026 }
1027}
1028
1029static int
1030memb_us_ir_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
1031 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
1032 const UniversalString_t *st = (const UniversalString_t *)sptr;
1033
1034 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001035 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +00001036 "%s: value not given (%s:%d)",
1037 td->name, __FILE__, __LINE__);
1038 return -1;
1039 }
1040
1041
1042 if(!check_permitted_alphabet_31(st)) {
1043 /* Constraint check succeeded */
1044 return 0;
1045 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001046 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin3a4689a2006-11-24 11:20:27 +00001047 "%s: constraint failed (%s:%d)",
1048 td->name, __FILE__, __LINE__);
1049 return -1;
1050 }
1051}
1052
1053static int asn_PER_MAP_us_ir_31_v2c(unsigned int value) {
1054 if(value >= sizeof(permitted_alphabet_table_31)/sizeof(permitted_alphabet_table_31[0]))
1055 return -1;
1056 return permitted_alphabet_table_31[value] - 1;
1057}
1058static int asn_PER_MAP_us_ir_31_c2v(unsigned int code) {
1059 if(code >= sizeof(permitted_alphabet_code2value_31)/sizeof(permitted_alphabet_code2value_31[0]))
1060 return -1;
1061 return permitted_alphabet_code2value_31[code];
1062}
Lev Walkin07aaa342006-10-09 12:52:15 +00001063
1064/*** <<< CTDEFS [PDU] >>> ***/
1065
Lev Walkin0479e042017-09-26 18:39:58 -07001066static asn_per_constraints_t asn_PER_memb_ia5_c_constr_5 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001067 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1068 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1069 0, 0 /* No PER character map necessary */
1070};
Lev Walkin0479e042017-09-26 18:39:58 -07001071static asn_per_constraints_t asn_PER_memb_ia5_ce_constr_6 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001072 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1073 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1074 0, 0 /* No PER character map necessary */
1075};
Lev Walkin0479e042017-09-26 18:39:58 -07001076static asn_per_constraints_t asn_PER_memb_ia5_ir_constr_7 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001077 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1078 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1079 asn_PER_MAP_ia5_ir_7_v2c, /* Value to PER code map */
1080 asn_PER_MAP_ia5_ir_7_c2v /* PER code to value map */
1081};
Lev Walkin0479e042017-09-26 18:39:58 -07001082static asn_per_constraints_t asn_PER_memb_vs_c_constr_9 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001083 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1084 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1085 0, 0 /* No PER character map necessary */
1086};
Lev Walkin0479e042017-09-26 18:39:58 -07001087static asn_per_constraints_t asn_PER_memb_vs_ce_constr_10 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001088 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1089 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1090 0, 0 /* No PER character map necessary */
1091};
Lev Walkin0479e042017-09-26 18:39:58 -07001092static asn_per_constraints_t asn_PER_memb_vs_ir_constr_11 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001093 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1094 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1095 asn_PER_MAP_vs_ir_11_v2c, /* Value to PER code map */
1096 asn_PER_MAP_vs_ir_11_c2v /* PER code to value map */
1097};
Lev Walkin0479e042017-09-26 18:39:58 -07001098static asn_per_constraints_t asn_PER_memb_pr_c_constr_13 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001099 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1100 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1101 0, 0 /* No PER character map necessary */
1102};
Lev Walkin0479e042017-09-26 18:39:58 -07001103static asn_per_constraints_t asn_PER_memb_pr_ir_constr_14 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001104 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1105 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1106 asn_PER_MAP_pr_ir_14_v2c, /* Value to PER code map */
1107 asn_PER_MAP_pr_ir_14_c2v /* PER code to value map */
1108};
Lev Walkin0479e042017-09-26 18:39:58 -07001109static asn_per_constraints_t asn_PER_memb_ns_c_constr_16 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001110 { APC_CONSTRAINED, 3, 3, 53, 57 } /* (53..57) */,
1111 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1112 0, 0 /* No PER character map necessary */
1113};
Lev Walkin0479e042017-09-26 18:39:58 -07001114static asn_per_constraints_t asn_PER_memb_ns_ce_constr_17 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001115 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1116 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1117 0, 0 /* No PER character map necessary */
1118};
Lev Walkin0479e042017-09-26 18:39:58 -07001119static asn_per_constraints_t asn_PER_memb_ns_ir_constr_18 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001120 { APC_CONSTRAINED, 1, 1, 49, 57 } /* (49..57) */,
1121 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1122 asn_PER_MAP_ns_ir_18_v2c, /* Value to PER code map */
1123 asn_PER_MAP_ns_ir_18_c2v /* PER code to value map */
1124};
Lev Walkin0479e042017-09-26 18:39:58 -07001125static asn_per_constraints_t asn_PER_memb_ut_c_constr_19 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001126 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1127 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1128 0, 0 /* No PER value map */
1129};
Lev Walkin0479e042017-09-26 18:39:58 -07001130static asn_per_constraints_t asn_PER_memb_ut_ce_constr_20 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001131 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1132 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1133 0, 0 /* No PER value map */
1134};
Lev Walkin0479e042017-09-26 18:39:58 -07001135static asn_per_constraints_t asn_PER_memb_ut_ir_constr_21 CC_NOTUSED = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001136 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1137 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
1138 0, 0 /* No PER value map */
1139};
Lev Walkin0479e042017-09-26 18:39:58 -07001140static asn_per_constraints_t asn_PER_memb_bm_c_constr_23 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001141 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1142 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1143 0, 0 /* No PER character map necessary */
1144};
Lev Walkin0479e042017-09-26 18:39:58 -07001145static asn_per_constraints_t asn_PER_memb_bm_cs_constr_24 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001146 { APC_CONSTRAINED, 16, 16, 0, 65533 } /* (0..65533) */,
1147 { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */,
1148 0, 0 /* No PER character map necessary */
1149};
Lev Walkin0479e042017-09-26 18:39:58 -07001150static asn_per_constraints_t asn_PER_memb_bm_ce_constr_25 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001151 { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
1152 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1153 0, 0 /* No PER character map necessary */
1154};
Lev Walkin0479e042017-09-26 18:39:58 -07001155static asn_per_constraints_t asn_PER_memb_bm_ir_constr_26 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001156 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1157 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1158 asn_PER_MAP_bm_ir_26_v2c, /* Value to PER code map */
1159 asn_PER_MAP_bm_ir_26_c2v /* PER code to value map */
1160};
Lev Walkin0479e042017-09-26 18:39:58 -07001161static asn_per_constraints_t asn_PER_memb_us_c_constr_28 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001162 { APC_CONSTRAINED, 5, 5, 65, 90 } /* (65..90) */,
1163 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1164 0, 0 /* No PER character map necessary */
1165};
Lev Walkin0479e042017-09-26 18:39:58 -07001166static asn_per_constraints_t asn_PER_memb_us_cs_constr_29 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001167 { APC_CONSTRAINED, 32, 32, 0, 2147483647 } /* (0..4294967295) */,
1168 { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */,
1169 0, 0 /* No PER character map necessary */
1170};
Lev Walkin0479e042017-09-26 18:39:58 -07001171static asn_per_constraints_t asn_PER_memb_us_ce_constr_30 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001172 { APC_CONSTRAINED, 32, 32, 0, 2147483647 } /* special case 1 */
1173 ,
1174 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1175 0, 0 /* No PER character map necessary */
1176};
Lev Walkin0479e042017-09-26 18:39:58 -07001177static asn_per_constraints_t asn_PER_memb_us_ir_constr_31 CC_NOTUSED = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001178 { APC_CONSTRAINED, 3, 3, 65, 90 } /* (65..90) */,
1179 { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */,
1180 asn_PER_MAP_us_ir_31_v2c, /* Value to PER code map */
1181 asn_PER_MAP_us_ir_31_c2v /* PER code to value map */
1182};
Lev Walkin07aaa342006-10-09 12:52:15 +00001183
1184/*** <<< STAT-DEFS [PDU] >>> ***/
1185
1186static asn_TYPE_member_t asn_MBR_many_2[] = {
1187 { ATF_POINTER, 0, 0,
1188 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
1189 .tag_mode = 0,
1190 .type = &asn_DEF_PDU,
Lev Walkin67a30122017-08-10 05:48:54 -07001191 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001192 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001193 .default_value = 0,
1194 .name = ""
1195 },
1196};
Lev Walkina7591b52014-10-12 18:37:35 -07001197static const ber_tlv_tag_t asn_DEF_many_tags_2[] = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001198 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
1199 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
1200};
1201static asn_SET_OF_specifics_t asn_SPC_many_specs_2 = {
1202 sizeof(struct many),
1203 offsetof(struct many, _asn_ctx),
1204 0, /* XER encoding is XMLDelimitedItemList */
1205};
1206static /* Use -fall-defs-global to expose */
1207asn_TYPE_descriptor_t asn_DEF_many_2 = {
1208 "many",
1209 "many",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001210 &asn_OP_SEQUENCE_OF,
Lev Walkin07aaa342006-10-09 12:52:15 +00001211 asn_DEF_many_tags_2,
1212 sizeof(asn_DEF_many_tags_2)
1213 /sizeof(asn_DEF_many_tags_2[0]) - 1, /* 1 */
1214 asn_DEF_many_tags_2, /* Same as above */
1215 sizeof(asn_DEF_many_tags_2)
1216 /sizeof(asn_DEF_many_tags_2[0]), /* 2 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001217 { 0, 0, SEQUENCE_OF_constraint },
Lev Walkin07aaa342006-10-09 12:52:15 +00001218 asn_MBR_many_2,
1219 1, /* Single element */
1220 &asn_SPC_many_specs_2 /* Additional specs */
1221};
1222
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001223asn_TYPE_member_t asn_MBR_PDU_1[] = {
Lev Walkin3a4689a2006-11-24 11:20:27 +00001224 { ATF_POINTER, 31, offsetof(struct PDU, many),
Lev Walkin07aaa342006-10-09 12:52:15 +00001225 .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
Lev Walkin9ab21b82006-10-19 02:46:01 +00001226 .tag_mode = 0,
Lev Walkin07aaa342006-10-09 12:52:15 +00001227 .type = &asn_DEF_many_2,
Lev Walkin67a30122017-08-10 05:48:54 -07001228 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001229 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001230 .default_value = 0,
1231 .name = "many"
1232 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001233 { ATF_POINTER, 30, offsetof(struct PDU, ia5),
Lev Walkin07aaa342006-10-09 12:52:15 +00001234 .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
1235 .tag_mode = -1, /* IMPLICIT tag at current level */
1236 .type = &asn_DEF_IA5String,
Lev Walkin67a30122017-08-10 05:48:54 -07001237 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001238 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001239 .default_value = 0,
1240 .name = "ia5"
1241 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001242 { ATF_POINTER, 29, offsetof(struct PDU, ia5_c),
Lev Walkin07aaa342006-10-09 12:52:15 +00001243 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
1244 .tag_mode = -1, /* IMPLICIT tag at current level */
1245 .type = &asn_DEF_IA5String,
Lev Walkin67a30122017-08-10 05:48:54 -07001246 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001247 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ia5_c_constr_5, .general_constraints = memb_ia5_c_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001248 .default_value = 0,
1249 .name = "ia5-c"
1250 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001251 { ATF_POINTER, 28, offsetof(struct PDU, ia5_ce),
Lev Walkin07aaa342006-10-09 12:52:15 +00001252 .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
1253 .tag_mode = -1, /* IMPLICIT tag at current level */
1254 .type = &asn_DEF_IA5String,
Lev Walkin67a30122017-08-10 05:48:54 -07001255 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001256 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ia5_ce_constr_6, .general_constraints = memb_ia5_ce_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001257 .default_value = 0,
1258 .name = "ia5-ce"
1259 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001260 { ATF_POINTER, 27, offsetof(struct PDU, ia5_ir),
Lev Walkin07aaa342006-10-09 12:52:15 +00001261 .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
1262 .tag_mode = -1, /* IMPLICIT tag at current level */
1263 .type = &asn_DEF_IA5String,
Lev Walkin67a30122017-08-10 05:48:54 -07001264 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001265 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ia5_ir_constr_7, .general_constraints = memb_ia5_ir_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001266 .default_value = 0,
1267 .name = "ia5-ir"
1268 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001269 { ATF_POINTER, 26, offsetof(struct PDU, vs),
Lev Walkin07aaa342006-10-09 12:52:15 +00001270 .tag = (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
1271 .tag_mode = -1, /* IMPLICIT tag at current level */
1272 .type = &asn_DEF_VisibleString,
Lev Walkin67a30122017-08-10 05:48:54 -07001273 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001274 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001275 .default_value = 0,
1276 .name = "vs"
1277 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001278 { ATF_POINTER, 25, offsetof(struct PDU, vs_c),
Lev Walkin07aaa342006-10-09 12:52:15 +00001279 .tag = (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
1280 .tag_mode = -1, /* IMPLICIT tag at current level */
1281 .type = &asn_DEF_VisibleString,
Lev Walkin67a30122017-08-10 05:48:54 -07001282 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001283 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_vs_c_constr_9, .general_constraints = memb_vs_c_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001284 .default_value = 0,
1285 .name = "vs-c"
1286 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001287 { ATF_POINTER, 24, offsetof(struct PDU, vs_ce),
Lev Walkin07aaa342006-10-09 12:52:15 +00001288 .tag = (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
1289 .tag_mode = -1, /* IMPLICIT tag at current level */
1290 .type = &asn_DEF_VisibleString,
Lev Walkin67a30122017-08-10 05:48:54 -07001291 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001292 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_vs_ce_constr_10, .general_constraints = memb_vs_ce_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001293 .default_value = 0,
1294 .name = "vs-ce"
1295 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001296 { ATF_POINTER, 23, offsetof(struct PDU, vs_ir),
Lev Walkin07aaa342006-10-09 12:52:15 +00001297 .tag = (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
1298 .tag_mode = -1, /* IMPLICIT tag at current level */
1299 .type = &asn_DEF_VisibleString,
Lev Walkin67a30122017-08-10 05:48:54 -07001300 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001301 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_vs_ir_constr_11, .general_constraints = memb_vs_ir_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001302 .default_value = 0,
1303 .name = "vs-ir"
1304 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001305 { ATF_POINTER, 22, offsetof(struct PDU, pr),
Lev Walkin07aaa342006-10-09 12:52:15 +00001306 .tag = (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
1307 .tag_mode = -1, /* IMPLICIT tag at current level */
1308 .type = &asn_DEF_PrintableString,
Lev Walkin67a30122017-08-10 05:48:54 -07001309 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001310 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001311 .default_value = 0,
1312 .name = "pr"
1313 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001314 { ATF_POINTER, 21, offsetof(struct PDU, pr_c),
Lev Walkin07aaa342006-10-09 12:52:15 +00001315 .tag = (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
1316 .tag_mode = -1, /* IMPLICIT tag at current level */
1317 .type = &asn_DEF_PrintableString,
Lev Walkin67a30122017-08-10 05:48:54 -07001318 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001319 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_pr_c_constr_13, .general_constraints = memb_pr_c_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001320 .default_value = 0,
1321 .name = "pr-c"
1322 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001323 { ATF_POINTER, 20, offsetof(struct PDU, pr_ir),
Lev Walkin07aaa342006-10-09 12:52:15 +00001324 .tag = (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
1325 .tag_mode = -1, /* IMPLICIT tag at current level */
1326 .type = &asn_DEF_PrintableString,
Lev Walkin67a30122017-08-10 05:48:54 -07001327 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001328 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_pr_ir_constr_14, .general_constraints = memb_pr_ir_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001329 .default_value = 0,
1330 .name = "pr-ir"
1331 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001332 { ATF_POINTER, 19, offsetof(struct PDU, ns),
Lev Walkin07aaa342006-10-09 12:52:15 +00001333 .tag = (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
1334 .tag_mode = -1, /* IMPLICIT tag at current level */
1335 .type = &asn_DEF_NumericString,
Lev Walkin67a30122017-08-10 05:48:54 -07001336 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001337 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001338 .default_value = 0,
1339 .name = "ns"
1340 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001341 { ATF_POINTER, 18, offsetof(struct PDU, ns_c),
Lev Walkin07aaa342006-10-09 12:52:15 +00001342 .tag = (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
1343 .tag_mode = -1, /* IMPLICIT tag at current level */
1344 .type = &asn_DEF_NumericString,
Lev Walkin67a30122017-08-10 05:48:54 -07001345 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001346 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ns_c_constr_16, .general_constraints = memb_ns_c_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001347 .default_value = 0,
1348 .name = "ns-c"
1349 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001350 { ATF_POINTER, 17, offsetof(struct PDU, ns_ce),
Lev Walkin07aaa342006-10-09 12:52:15 +00001351 .tag = (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
1352 .tag_mode = -1, /* IMPLICIT tag at current level */
1353 .type = &asn_DEF_NumericString,
Lev Walkin67a30122017-08-10 05:48:54 -07001354 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001355 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ns_ce_constr_17, .general_constraints = memb_ns_ce_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001356 .default_value = 0,
1357 .name = "ns-ce"
1358 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001359 { ATF_POINTER, 16, offsetof(struct PDU, ns_ir),
Lev Walkin07aaa342006-10-09 12:52:15 +00001360 .tag = (ASN_TAG_CLASS_CONTEXT | (15 << 2)),
1361 .tag_mode = -1, /* IMPLICIT tag at current level */
1362 .type = &asn_DEF_NumericString,
Lev Walkin67a30122017-08-10 05:48:54 -07001363 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001364 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ns_ir_constr_18, .general_constraints = memb_ns_ir_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001365 .default_value = 0,
1366 .name = "ns-ir"
1367 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001368 { ATF_POINTER, 15, offsetof(struct PDU, ut_c),
Lev Walkin07aaa342006-10-09 12:52:15 +00001369 .tag = (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
1370 .tag_mode = -1, /* IMPLICIT tag at current level */
1371 .type = &asn_DEF_UTF8String,
Lev Walkin67a30122017-08-10 05:48:54 -07001372 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001373 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ut_c_constr_19, .general_constraints = memb_ut_c_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001374 .default_value = 0,
1375 .name = "ut-c"
1376 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001377 { ATF_POINTER, 14, offsetof(struct PDU, ut_ce),
Lev Walkin07aaa342006-10-09 12:52:15 +00001378 .tag = (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
1379 .tag_mode = -1, /* IMPLICIT tag at current level */
1380 .type = &asn_DEF_UTF8String,
Lev Walkin67a30122017-08-10 05:48:54 -07001381 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001382 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ut_ce_constr_20, .general_constraints = memb_ut_ce_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001383 .default_value = 0,
1384 .name = "ut-ce"
1385 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001386 { ATF_POINTER, 13, offsetof(struct PDU, ut_ir),
Lev Walkin07aaa342006-10-09 12:52:15 +00001387 .tag = (ASN_TAG_CLASS_CONTEXT | (18 << 2)),
1388 .tag_mode = -1, /* IMPLICIT tag at current level */
1389 .type = &asn_DEF_UTF8String,
Lev Walkin67a30122017-08-10 05:48:54 -07001390 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001391 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_ut_ir_constr_21, .general_constraints = memb_ut_ir_constraint_1 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001392 .default_value = 0,
1393 .name = "ut-ir"
1394 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001395 { ATF_POINTER, 12, offsetof(struct PDU, bm),
Lev Walkin07aaa342006-10-09 12:52:15 +00001396 .tag = (ASN_TAG_CLASS_CONTEXT | (19 << 2)),
1397 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkin3a4689a2006-11-24 11:20:27 +00001398 .type = &asn_DEF_BMPString,
Lev Walkin67a30122017-08-10 05:48:54 -07001399 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001400 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001401 .default_value = 0,
1402 .name = "bm"
1403 },
1404 { ATF_POINTER, 11, offsetof(struct PDU, bm_c),
1405 .tag = (ASN_TAG_CLASS_CONTEXT | (20 << 2)),
1406 .tag_mode = -1, /* IMPLICIT tag at current level */
1407 .type = &asn_DEF_BMPString,
Lev Walkin67a30122017-08-10 05:48:54 -07001408 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001409 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_c_constr_23, .general_constraints = memb_bm_c_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001410 .default_value = 0,
1411 .name = "bm-c"
1412 },
1413 { ATF_POINTER, 10, offsetof(struct PDU, bm_cs),
1414 .tag = (ASN_TAG_CLASS_CONTEXT | (21 << 2)),
1415 .tag_mode = -1, /* IMPLICIT tag at current level */
1416 .type = &asn_DEF_BMPString,
Lev Walkin67a30122017-08-10 05:48:54 -07001417 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001418 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_cs_constr_24, .general_constraints = memb_bm_cs_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001419 .default_value = 0,
1420 .name = "bm-cs"
1421 },
1422 { ATF_POINTER, 9, offsetof(struct PDU, bm_ce),
1423 .tag = (ASN_TAG_CLASS_CONTEXT | (22 << 2)),
1424 .tag_mode = -1, /* IMPLICIT tag at current level */
1425 .type = &asn_DEF_BMPString,
Lev Walkin67a30122017-08-10 05:48:54 -07001426 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001427 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_ce_constr_25, .general_constraints = memb_bm_ce_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001428 .default_value = 0,
1429 .name = "bm-ce"
1430 },
1431 { ATF_POINTER, 8, offsetof(struct PDU, bm_ir),
1432 .tag = (ASN_TAG_CLASS_CONTEXT | (23 << 2)),
1433 .tag_mode = -1, /* IMPLICIT tag at current level */
1434 .type = &asn_DEF_BMPString,
Lev Walkin67a30122017-08-10 05:48:54 -07001435 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001436 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_bm_ir_constr_26, .general_constraints = memb_bm_ir_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001437 .default_value = 0,
1438 .name = "bm-ir"
1439 },
1440 { ATF_POINTER, 7, offsetof(struct PDU, us),
1441 .tag = (ASN_TAG_CLASS_CONTEXT | (24 << 2)),
1442 .tag_mode = -1, /* IMPLICIT tag at current level */
1443 .type = &asn_DEF_UniversalString,
Lev Walkin67a30122017-08-10 05:48:54 -07001444 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001445 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001446 .default_value = 0,
1447 .name = "us"
1448 },
1449 { ATF_POINTER, 6, offsetof(struct PDU, us_c),
1450 .tag = (ASN_TAG_CLASS_CONTEXT | (25 << 2)),
1451 .tag_mode = -1, /* IMPLICIT tag at current level */
1452 .type = &asn_DEF_UniversalString,
Lev Walkin67a30122017-08-10 05:48:54 -07001453 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001454 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_c_constr_28, .general_constraints = memb_us_c_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001455 .default_value = 0,
1456 .name = "us-c"
1457 },
1458 { ATF_POINTER, 5, offsetof(struct PDU, us_cs),
1459 .tag = (ASN_TAG_CLASS_CONTEXT | (26 << 2)),
1460 .tag_mode = -1, /* IMPLICIT tag at current level */
1461 .type = &asn_DEF_UniversalString,
Lev Walkin67a30122017-08-10 05:48:54 -07001462 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001463 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_cs_constr_29, .general_constraints = memb_us_cs_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001464 .default_value = 0,
1465 .name = "us-cs"
1466 },
1467 { ATF_POINTER, 4, offsetof(struct PDU, us_ce),
1468 .tag = (ASN_TAG_CLASS_CONTEXT | (27 << 2)),
1469 .tag_mode = -1, /* IMPLICIT tag at current level */
1470 .type = &asn_DEF_UniversalString,
Lev Walkin67a30122017-08-10 05:48:54 -07001471 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001472 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_ce_constr_30, .general_constraints = memb_us_ce_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001473 .default_value = 0,
1474 .name = "us-ce"
1475 },
1476 { ATF_POINTER, 3, offsetof(struct PDU, us_ir),
1477 .tag = (ASN_TAG_CLASS_CONTEXT | (28 << 2)),
1478 .tag_mode = -1, /* IMPLICIT tag at current level */
1479 .type = &asn_DEF_UniversalString,
Lev Walkin67a30122017-08-10 05:48:54 -07001480 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001481 { .oer_constraints = 0, .per_constraints = &asn_PER_memb_us_ir_constr_31, .general_constraints = memb_us_ir_constraint_1 },
Lev Walkin3a4689a2006-11-24 11:20:27 +00001482 .default_value = 0,
1483 .name = "us-ir"
1484 },
1485 { ATF_POINTER, 2, offsetof(struct PDU, real),
1486 .tag = (ASN_TAG_CLASS_CONTEXT | (29 << 2)),
1487 .tag_mode = -1, /* IMPLICIT tag at current level */
Lev Walkin2a744a72013-03-27 01:56:23 -07001488 .type = &asn_DEF_NativeReal,
Lev Walkin67a30122017-08-10 05:48:54 -07001489 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001490 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001491 .default_value = 0,
1492 .name = "real"
1493 },
1494 { ATF_POINTER, 1, offsetof(struct PDU, oid),
Lev Walkin3a4689a2006-11-24 11:20:27 +00001495 .tag = (ASN_TAG_CLASS_CONTEXT | (30 << 2)),
Lev Walkin07aaa342006-10-09 12:52:15 +00001496 .tag_mode = -1, /* IMPLICIT tag at current level */
1497 .type = &asn_DEF_OBJECT_IDENTIFIER,
Lev Walkin67a30122017-08-10 05:48:54 -07001498 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07001499 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin07aaa342006-10-09 12:52:15 +00001500 .default_value = 0,
1501 .name = "oid"
1502 },
1503};
Lev Walkina7591b52014-10-12 18:37:35 -07001504static const int asn_MAP_PDU_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 };
1505static const ber_tlv_tag_t asn_DEF_PDU_tags_1[] = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001506 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
1507};
Lev Walkina7591b52014-10-12 18:37:35 -07001508static const asn_TYPE_tag2member_t asn_MAP_PDU_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -07001509 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* many */
1510 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ia5 */
1511 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ia5-c */
1512 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ia5-ce */
1513 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ia5-ir */
1514 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* vs */
1515 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* vs-c */
1516 { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* vs-ce */
1517 { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* vs-ir */
1518 { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pr */
1519 { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pr-c */
1520 { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* pr-ir */
1521 { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* ns */
1522 { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* ns-c */
1523 { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* ns-ce */
1524 { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* ns-ir */
1525 { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* ut-c */
1526 { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* ut-ce */
1527 { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* ut-ir */
1528 { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* bm */
1529 { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* bm-c */
1530 { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* bm-cs */
1531 { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* bm-ce */
1532 { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* bm-ir */
1533 { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* us */
1534 { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* us-c */
1535 { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 }, /* us-cs */
1536 { (ASN_TAG_CLASS_CONTEXT | (27 << 2)), 27, 0, 0 }, /* us-ce */
1537 { (ASN_TAG_CLASS_CONTEXT | (28 << 2)), 28, 0, 0 }, /* us-ir */
1538 { (ASN_TAG_CLASS_CONTEXT | (29 << 2)), 29, 0, 0 }, /* real */
1539 { (ASN_TAG_CLASS_CONTEXT | (30 << 2)), 30, 0, 0 } /* oid */
Lev Walkin07aaa342006-10-09 12:52:15 +00001540};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001541asn_SEQUENCE_specifics_t asn_SPC_PDU_specs_1 = {
Lev Walkin07aaa342006-10-09 12:52:15 +00001542 sizeof(struct PDU),
1543 offsetof(struct PDU, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -07001544 .tag2el = asn_MAP_PDU_tag2el_1,
1545 .tag2el_count = 31, /* Count of tags in the map */
Lev Walkin07aaa342006-10-09 12:52:15 +00001546 asn_MAP_PDU_oms_1, /* Optional members */
Lev Walkin3a4689a2006-11-24 11:20:27 +00001547 31, 0, /* Root/Additions */
Lev Walkin07aaa342006-10-09 12:52:15 +00001548 -1, /* Start extensions */
1549 -1 /* Stop extensions */
1550};
1551asn_TYPE_descriptor_t asn_DEF_PDU = {
1552 "PDU",
1553 "PDU",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001554 &asn_OP_SEQUENCE,
Lev Walkin07aaa342006-10-09 12:52:15 +00001555 asn_DEF_PDU_tags_1,
1556 sizeof(asn_DEF_PDU_tags_1)
1557 /sizeof(asn_DEF_PDU_tags_1[0]), /* 1 */
1558 asn_DEF_PDU_tags_1, /* Same as above */
1559 sizeof(asn_DEF_PDU_tags_1)
1560 /sizeof(asn_DEF_PDU_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001561 { 0, 0, SEQUENCE_constraint },
Lev Walkin07aaa342006-10-09 12:52:15 +00001562 asn_MBR_PDU_1,
Lev Walkin3a4689a2006-11-24 11:20:27 +00001563 31, /* Elements count */
Lev Walkin07aaa342006-10-09 12:52:15 +00001564 &asn_SPC_PDU_specs_1 /* Additional specs */
1565};
1566