blob: 45d46bf903e9687ff03db912aada1597ecf65c7e [file] [log] [blame]
Lev Walkin006de1c2004-08-20 13:37:45 +00001
2/*** <<< INCLUDES [Int1] >>> ***/
3
4#include <INTEGER.h>
5
6/*** <<< TYPE-DECLS [Int1] >>> ***/
7
Lev Walkin006de1c2004-08-20 13:37:45 +00008typedef INTEGER_t Int1_t;
9
Lev Walkin006de1c2004-08-20 13:37:45 +000010/*** <<< FUNC-DECLS [Int1] >>> ***/
11
Lev Walkincaf0d5a2005-03-04 23:48:19 +000012extern asn_TYPE_descriptor_t asn_DEF_Int1;
13asn_struct_free_f Int1_free;
14asn_struct_print_f Int1_print;
15asn_constr_check_f Int1_constraint;
16ber_type_decoder_f Int1_decode_ber;
17der_type_encoder_f Int1_encode_der;
18xer_type_decoder_f Int1_decode_xer;
19xer_type_encoder_f Int1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +000020
21/*** <<< CODE [Int1] >>> ***/
22
Lev Walkincaf0d5a2005-03-04 23:48:19 +000023/*
24 * This type is implemented using INTEGER,
25 * so here we adjust the DEF accordingly.
26 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +000027
28/*** <<< STAT-DEFS [Int1] >>> ***/
29
Lev Walkina7591b52014-10-12 18:37:35 -070030static const ber_tlv_tag_t asn_DEF_Int1_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +000031 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
32};
33asn_TYPE_descriptor_t asn_DEF_Int1 = {
34 "Int1",
35 "Int1",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +080036 INTEGER_free,
37 INTEGER_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -070038 INTEGER_compare,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +080039 INTEGER_constraint,
40 INTEGER_decode_ber,
41 INTEGER_encode_der,
42 INTEGER_decode_xer,
43 INTEGER_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -070044 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +040045 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +000046 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +000047 asn_DEF_Int1_tags_1,
48 sizeof(asn_DEF_Int1_tags_1)
49 /sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
50 asn_DEF_Int1_tags_1, /* Same as above */
51 sizeof(asn_DEF_Int1_tags_1)
52 /sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +040053 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +000054 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +000055 0, 0, /* No members */
56 0 /* No specifics */
57};
Lev Walkin006de1c2004-08-20 13:37:45 +000058
59
60/*** <<< INCLUDES [Int2] >>> ***/
61
Lev Walkin22b5ed42006-09-13 02:51:20 +000062#include "Int1.h"
Lev Walkin006de1c2004-08-20 13:37:45 +000063
64/*** <<< TYPE-DECLS [Int2] >>> ***/
65
Lev Walkin006de1c2004-08-20 13:37:45 +000066typedef Int1_t Int2_t;
67
Lev Walkin006de1c2004-08-20 13:37:45 +000068/*** <<< FUNC-DECLS [Int2] >>> ***/
69
Lev Walkindfae9752004-09-29 13:19:37 +000070extern asn_TYPE_descriptor_t asn_DEF_Int2;
Lev Walkina9cc46e2004-09-22 16:06:28 +000071asn_struct_free_f Int2_free;
72asn_struct_print_f Int2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +000073asn_constr_check_f Int2_constraint;
74ber_type_decoder_f Int2_decode_ber;
75der_type_encoder_f Int2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +000076xer_type_decoder_f Int2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +000077xer_type_encoder_f Int2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +000078
79/*** <<< CODE [Int2] >>> ***/
80
81int
Lev Walkindfae9752004-09-29 13:19:37 +000082Int2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +000083 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +000084 const Int1_t *st = (const Int1_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +000085 long value;
86
87 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -070088 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +000089 "%s: value not given (%s:%d)",
90 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +000091 return -1;
92 }
93
Lev Walkin44467432004-09-07 06:43:57 +000094 /* Check if the sign bit is present */
95 value = st->buf ? ((st->buf[0] & 0x80) ? -1 : 1) : 0;
Lev Walkin006de1c2004-08-20 13:37:45 +000096
97 if((value >= 0)) {
98 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +000099 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000100 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700101 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000102 "%s: constraint failed (%s:%d)",
103 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000104 return -1;
105 }
106}
107
108/*
109 * This type is implemented using Int1,
Lev Walkinc3808c12004-09-23 22:14:58 +0000110 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000111 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000112
113/*** <<< STAT-DEFS [Int2] >>> ***/
114
Lev Walkina7591b52014-10-12 18:37:35 -0700115static const ber_tlv_tag_t asn_DEF_Int2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000116 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000117};
Lev Walkindfae9752004-09-29 13:19:37 +0000118asn_TYPE_descriptor_t asn_DEF_Int2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000119 "Int2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000120 "Int2",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800121 INTEGER_free,
122 INTEGER_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700123 INTEGER_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000124 Int2_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800125 INTEGER_decode_ber,
126 INTEGER_encode_der,
127 INTEGER_decode_xer,
128 INTEGER_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700129 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400130 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000131 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000132 asn_DEF_Int2_tags_1,
133 sizeof(asn_DEF_Int2_tags_1)
134 /sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
135 asn_DEF_Int2_tags_1, /* Same as above */
136 sizeof(asn_DEF_Int2_tags_1)
137 /sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400138 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000139 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000140 0, 0, /* No members */
141 0 /* No specifics */
142};
143
144
145/*** <<< INCLUDES [Int3] >>> ***/
146
Lev Walkin22b5ed42006-09-13 02:51:20 +0000147#include "Int2.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000148
149/*** <<< TYPE-DECLS [Int3] >>> ***/
150
Lev Walkin006de1c2004-08-20 13:37:45 +0000151typedef Int2_t Int3_t;
152
Lev Walkin006de1c2004-08-20 13:37:45 +0000153/*** <<< FUNC-DECLS [Int3] >>> ***/
154
Lev Walkindfae9752004-09-29 13:19:37 +0000155extern asn_TYPE_descriptor_t asn_DEF_Int3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000156asn_struct_free_f Int3_free;
157asn_struct_print_f Int3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000158asn_constr_check_f Int3_constraint;
159ber_type_decoder_f Int3_decode_ber;
160der_type_encoder_f Int3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000161xer_type_decoder_f Int3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000162xer_type_encoder_f Int3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000163
164/*** <<< CODE [Int3] >>> ***/
165
166int
Lev Walkindfae9752004-09-29 13:19:37 +0000167Int3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000168 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000169 const Int2_t *st = (const Int2_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000170 long value;
171
172 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700173 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000174 "%s: value not given (%s:%d)",
175 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000176 return -1;
177 }
178
Lev Walkindfae9752004-09-29 13:19:37 +0000179 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700180 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000181 "%s: value too large (%s:%d)",
182 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000183 return -1;
184 }
185
186 if((value >= 0 && value <= 10)) {
187 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000188 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000189 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700190 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000191 "%s: constraint failed (%s:%d)",
192 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000193 return -1;
194 }
195}
196
197/*
198 * This type is implemented using Int2,
Lev Walkinc3808c12004-09-23 22:14:58 +0000199 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000200 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000201
202/*** <<< STAT-DEFS [Int3] >>> ***/
203
Lev Walkina7591b52014-10-12 18:37:35 -0700204static const ber_tlv_tag_t asn_DEF_Int3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000205 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000206};
Lev Walkindfae9752004-09-29 13:19:37 +0000207asn_TYPE_descriptor_t asn_DEF_Int3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000208 "Int3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000209 "Int3",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800210 INTEGER_free,
211 INTEGER_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700212 INTEGER_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000213 Int3_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800214 INTEGER_decode_ber,
215 INTEGER_encode_der,
216 INTEGER_decode_xer,
217 INTEGER_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700218 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400219 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000220 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000221 asn_DEF_Int3_tags_1,
222 sizeof(asn_DEF_Int3_tags_1)
223 /sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
224 asn_DEF_Int3_tags_1, /* Same as above */
225 sizeof(asn_DEF_Int3_tags_1)
226 /sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400227 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000228 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000229 0, 0, /* No members */
230 0 /* No specifics */
231};
232
233
234/*** <<< INCLUDES [Int4] >>> ***/
235
Lev Walkin22b5ed42006-09-13 02:51:20 +0000236#include "Int3.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000237
238/*** <<< TYPE-DECLS [Int4] >>> ***/
239
Lev Walkin006de1c2004-08-20 13:37:45 +0000240typedef Int3_t Int4_t;
241
Lev Walkin006de1c2004-08-20 13:37:45 +0000242/*** <<< FUNC-DECLS [Int4] >>> ***/
243
Lev Walkindfae9752004-09-29 13:19:37 +0000244extern asn_TYPE_descriptor_t asn_DEF_Int4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000245asn_struct_free_f Int4_free;
246asn_struct_print_f Int4_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000247asn_constr_check_f Int4_constraint;
248ber_type_decoder_f Int4_decode_ber;
249der_type_encoder_f Int4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000250xer_type_decoder_f Int4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000251xer_type_encoder_f Int4_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000252
253/*** <<< CODE [Int4] >>> ***/
254
255int
Lev Walkindfae9752004-09-29 13:19:37 +0000256Int4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000257 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000258 const Int3_t *st = (const Int3_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +0000259 long value;
Lev Walkin006de1c2004-08-20 13:37:45 +0000260
261 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700262 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000263 "%s: value not given (%s:%d)",
264 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000265 return -1;
266 }
267
Lev Walkindfae9752004-09-29 13:19:37 +0000268 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700269 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000270 "%s: value too large (%s:%d)",
271 td->name, __FILE__, __LINE__);
272 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000273 }
274
Lev Walkind35c8b52004-08-25 02:08:08 +0000275 if((value >= 1 && value <= 10)) {
276 /* Constraint check succeeded */
277 return 0;
278 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700279 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000280 "%s: constraint failed (%s:%d)",
281 td->name, __FILE__, __LINE__);
282 return -1;
283 }
Lev Walkin006de1c2004-08-20 13:37:45 +0000284}
285
286/*
287 * This type is implemented using Int3,
Lev Walkinc3808c12004-09-23 22:14:58 +0000288 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000289 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000290
291/*** <<< STAT-DEFS [Int4] >>> ***/
292
Lev Walkina7591b52014-10-12 18:37:35 -0700293static const ber_tlv_tag_t asn_DEF_Int4_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000294 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000295};
Lev Walkindfae9752004-09-29 13:19:37 +0000296asn_TYPE_descriptor_t asn_DEF_Int4 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000297 "Int4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000298 "Int4",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800299 INTEGER_free,
300 INTEGER_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700301 INTEGER_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000302 Int4_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800303 INTEGER_decode_ber,
304 INTEGER_encode_der,
305 INTEGER_decode_xer,
306 INTEGER_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700307 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400308 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000309 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000310 asn_DEF_Int4_tags_1,
311 sizeof(asn_DEF_Int4_tags_1)
312 /sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
313 asn_DEF_Int4_tags_1, /* Same as above */
314 sizeof(asn_DEF_Int4_tags_1)
315 /sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400316 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000317 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000318 0, 0, /* No members */
319 0 /* No specifics */
320};
321
322
323/*** <<< INCLUDES [Int5] >>> ***/
324
Lev Walkin22b5ed42006-09-13 02:51:20 +0000325#include "Int4.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000326
327/*** <<< TYPE-DECLS [Int5] >>> ***/
328
Lev Walkin006de1c2004-08-20 13:37:45 +0000329typedef Int4_t Int5_t;
330
Lev Walkin006de1c2004-08-20 13:37:45 +0000331/*** <<< FUNC-DECLS [Int5] >>> ***/
332
Lev Walkindfae9752004-09-29 13:19:37 +0000333extern asn_TYPE_descriptor_t asn_DEF_Int5;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000334asn_struct_free_f Int5_free;
335asn_struct_print_f Int5_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000336asn_constr_check_f Int5_constraint;
337ber_type_decoder_f Int5_decode_ber;
338der_type_encoder_f Int5_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000339xer_type_decoder_f Int5_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000340xer_type_encoder_f Int5_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000341
342/*** <<< CODE [Int5] >>> ***/
343
344int
Lev Walkindfae9752004-09-29 13:19:37 +0000345Int5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000346 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000347 const Int4_t *st = (const Int4_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000348 long value;
349
350 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700351 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000352 "%s: value not given (%s:%d)",
353 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000354 return -1;
355 }
356
Lev Walkindfae9752004-09-29 13:19:37 +0000357 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700358 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000359 "%s: value too large (%s:%d)",
360 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000361 return -1;
362 }
363
364 if((value == 5)) {
365 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000366 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000367 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700368 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000369 "%s: constraint failed (%s:%d)",
370 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000371 return -1;
372 }
373}
374
375/*
376 * This type is implemented using Int4,
Lev Walkinc3808c12004-09-23 22:14:58 +0000377 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000378 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000379
380/*** <<< STAT-DEFS [Int5] >>> ***/
381
Lev Walkina7591b52014-10-12 18:37:35 -0700382static const ber_tlv_tag_t asn_DEF_Int5_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000383 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000384};
Lev Walkindfae9752004-09-29 13:19:37 +0000385asn_TYPE_descriptor_t asn_DEF_Int5 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000386 "Int5",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000387 "Int5",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800388 INTEGER_free,
389 INTEGER_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700390 INTEGER_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000391 Int5_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800392 INTEGER_decode_ber,
393 INTEGER_encode_der,
394 INTEGER_decode_xer,
395 INTEGER_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700396 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400397 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000398 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000399 asn_DEF_Int5_tags_1,
400 sizeof(asn_DEF_Int5_tags_1)
401 /sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
402 asn_DEF_Int5_tags_1, /* Same as above */
403 sizeof(asn_DEF_Int5_tags_1)
404 /sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400405 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000406 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000407 0, 0, /* No members */
408 0 /* No specifics */
409};
410
411
412/*** <<< INCLUDES [ExtensibleExtensions] >>> ***/
413
414#include <INTEGER.h>
415
416/*** <<< TYPE-DECLS [ExtensibleExtensions] >>> ***/
417
Lev Walkin006de1c2004-08-20 13:37:45 +0000418typedef INTEGER_t ExtensibleExtensions_t;
419
Lev Walkin006de1c2004-08-20 13:37:45 +0000420/*** <<< FUNC-DECLS [ExtensibleExtensions] >>> ***/
421
Lev Walkindfae9752004-09-29 13:19:37 +0000422extern asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000423asn_struct_free_f ExtensibleExtensions_free;
424asn_struct_print_f ExtensibleExtensions_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000425asn_constr_check_f ExtensibleExtensions_constraint;
426ber_type_decoder_f ExtensibleExtensions_decode_ber;
427der_type_encoder_f ExtensibleExtensions_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000428xer_type_decoder_f ExtensibleExtensions_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000429xer_type_encoder_f ExtensibleExtensions_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000430
431/*** <<< CODE [ExtensibleExtensions] >>> ***/
432
433int
Lev Walkindfae9752004-09-29 13:19:37 +0000434ExtensibleExtensions_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000435 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000436 const INTEGER_t *st = (const INTEGER_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +0000437 long value;
Lev Walkin006de1c2004-08-20 13:37:45 +0000438
439 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700440 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000441 "%s: value not given (%s:%d)",
442 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000443 return -1;
444 }
445
Lev Walkindfae9752004-09-29 13:19:37 +0000446 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700447 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000448 "%s: value too large (%s:%d)",
449 td->name, __FILE__, __LINE__);
450 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000451 }
452
Lev Walkind35c8b52004-08-25 02:08:08 +0000453 if((value >= 1 && value <= 256)) {
454 /* Constraint check succeeded */
455 return 0;
456 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700457 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000458 "%s: constraint failed (%s:%d)",
459 td->name, __FILE__, __LINE__);
460 return -1;
461 }
Lev Walkin006de1c2004-08-20 13:37:45 +0000462}
463
464/*
465 * This type is implemented using INTEGER,
Lev Walkinc3808c12004-09-23 22:14:58 +0000466 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000467 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000468
469/*** <<< STAT-DEFS [ExtensibleExtensions] >>> ***/
470
Lev Walkina7591b52014-10-12 18:37:35 -0700471static const ber_tlv_tag_t asn_DEF_ExtensibleExtensions_tags_1[] = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000472 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
473};
Lev Walkindfae9752004-09-29 13:19:37 +0000474asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000475 "ExtensibleExtensions",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000476 "ExtensibleExtensions",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800477 INTEGER_free,
478 INTEGER_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700479 INTEGER_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000480 ExtensibleExtensions_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800481 INTEGER_decode_ber,
482 INTEGER_encode_der,
483 INTEGER_decode_xer,
484 INTEGER_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700485 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400486 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000487 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000488 asn_DEF_ExtensibleExtensions_tags_1,
489 sizeof(asn_DEF_ExtensibleExtensions_tags_1)
490 /sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
491 asn_DEF_ExtensibleExtensions_tags_1, /* Same as above */
492 sizeof(asn_DEF_ExtensibleExtensions_tags_1)
493 /sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400494 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000495 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000496 0, 0, /* No members */
497 0 /* No specifics */
498};
499
500
501/*** <<< INCLUDES [Str1] >>> ***/
502
503#include <IA5String.h>
504
505/*** <<< TYPE-DECLS [Str1] >>> ***/
506
Lev Walkin006de1c2004-08-20 13:37:45 +0000507typedef IA5String_t Str1_t;
508
Lev Walkin006de1c2004-08-20 13:37:45 +0000509/*** <<< FUNC-DECLS [Str1] >>> ***/
510
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000511extern asn_TYPE_descriptor_t asn_DEF_Str1;
512asn_struct_free_f Str1_free;
513asn_struct_print_f Str1_print;
514asn_constr_check_f Str1_constraint;
515ber_type_decoder_f Str1_decode_ber;
516der_type_encoder_f Str1_encode_der;
517xer_type_decoder_f Str1_decode_xer;
518xer_type_encoder_f Str1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000519
520/*** <<< CODE [Str1] >>> ***/
521
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000522/*
523 * This type is implemented using IA5String,
524 * so here we adjust the DEF accordingly.
525 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000526
527/*** <<< STAT-DEFS [Str1] >>> ***/
528
Lev Walkina7591b52014-10-12 18:37:35 -0700529static const ber_tlv_tag_t asn_DEF_Str1_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000530 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
531};
532asn_TYPE_descriptor_t asn_DEF_Str1 = {
533 "Str1",
534 "Str1",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800535 IA5String_free,
536 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700537 IA5String_compare,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800538 IA5String_constraint,
539 IA5String_decode_ber,
540 IA5String_encode_der,
541 IA5String_decode_xer,
542 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700543 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400544 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000545 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000546 asn_DEF_Str1_tags_1,
547 sizeof(asn_DEF_Str1_tags_1)
548 /sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
549 asn_DEF_Str1_tags_1, /* Same as above */
550 sizeof(asn_DEF_Str1_tags_1)
551 /sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400552 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000553 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000554 0, 0, /* No members */
555 0 /* No specifics */
556};
Lev Walkin006de1c2004-08-20 13:37:45 +0000557
558
559/*** <<< INCLUDES [Str2] >>> ***/
560
Lev Walkin22b5ed42006-09-13 02:51:20 +0000561#include "Str1.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000562
563/*** <<< TYPE-DECLS [Str2] >>> ***/
564
Lev Walkin006de1c2004-08-20 13:37:45 +0000565typedef Str1_t Str2_t;
566
Lev Walkin006de1c2004-08-20 13:37:45 +0000567/*** <<< FUNC-DECLS [Str2] >>> ***/
568
Lev Walkindfae9752004-09-29 13:19:37 +0000569extern asn_TYPE_descriptor_t asn_DEF_Str2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000570asn_struct_free_f Str2_free;
571asn_struct_print_f Str2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000572asn_constr_check_f Str2_constraint;
573ber_type_decoder_f Str2_decode_ber;
574der_type_encoder_f Str2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000575xer_type_decoder_f Str2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000576xer_type_encoder_f Str2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000577
578/*** <<< CTABLES [Str2] >>> ***/
579
Lev Walkine8318b82005-03-06 09:29:03 +0000580static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000581 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000582 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000583 const uint8_t *ch = st->buf;
584 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000585
586 for(; ch < end; ch++) {
587 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000588 if(!(cv <= 127)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000589 }
Lev Walkin775885e2004-08-22 12:47:03 +0000590 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000591}
592
593
594/*** <<< CODE [Str2] >>> ***/
595
596int
Lev Walkindfae9752004-09-29 13:19:37 +0000597Str2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000598 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000599 const Str1_t *st = (const Str1_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000600 size_t size;
601
602 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700603 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000604 "%s: value not given (%s:%d)",
605 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000606 return -1;
607 }
608
609 size = st->size;
610
611 if(((size <= 20) || (size >= 25 && size <= 30))
Lev Walkine8318b82005-03-06 09:29:03 +0000612 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000613 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000614 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000615 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700616 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000617 "%s: constraint failed (%s:%d)",
618 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000619 return -1;
620 }
621}
622
623/*
624 * This type is implemented using Str1,
Lev Walkinc3808c12004-09-23 22:14:58 +0000625 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000626 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000627
628/*** <<< STAT-DEFS [Str2] >>> ***/
629
Lev Walkina7591b52014-10-12 18:37:35 -0700630static const ber_tlv_tag_t asn_DEF_Str2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000631 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000632};
Lev Walkindfae9752004-09-29 13:19:37 +0000633asn_TYPE_descriptor_t asn_DEF_Str2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000634 "Str2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000635 "Str2",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800636 IA5String_free,
637 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700638 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000639 Str2_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800640 IA5String_decode_ber,
641 IA5String_encode_der,
642 IA5String_decode_xer,
643 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700644 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400645 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000646 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000647 asn_DEF_Str2_tags_1,
648 sizeof(asn_DEF_Str2_tags_1)
649 /sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
650 asn_DEF_Str2_tags_1, /* Same as above */
651 sizeof(asn_DEF_Str2_tags_1)
652 /sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400653 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000654 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000655 0, 0, /* No members */
656 0 /* No specifics */
657};
658
659
660/*** <<< INCLUDES [Str3] >>> ***/
661
Lev Walkin22b5ed42006-09-13 02:51:20 +0000662#include "Str2.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000663
664/*** <<< TYPE-DECLS [Str3] >>> ***/
665
Lev Walkin006de1c2004-08-20 13:37:45 +0000666typedef Str2_t Str3_t;
667
Lev Walkin006de1c2004-08-20 13:37:45 +0000668/*** <<< FUNC-DECLS [Str3] >>> ***/
669
Lev Walkindfae9752004-09-29 13:19:37 +0000670extern asn_TYPE_descriptor_t asn_DEF_Str3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000671asn_struct_free_f Str3_free;
672asn_struct_print_f Str3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000673asn_constr_check_f Str3_constraint;
674ber_type_decoder_f Str3_decode_ber;
675der_type_encoder_f Str3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000676xer_type_decoder_f Str3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000677xer_type_encoder_f Str3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000678
679/*** <<< CTABLES [Str3] >>> ***/
680
Lev Walkina7591b52014-10-12 18:37:35 -0700681static const int permitted_alphabet_table_1[256] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +0000682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
686 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* ABC */
687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
688 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* def */
Lev Walkin006de1c2004-08-20 13:37:45 +0000689};
690
Lev Walkine8318b82005-03-06 09:29:03 +0000691static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700692 const int *table = permitted_alphabet_table_1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000693 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000694 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000695 const uint8_t *ch = st->buf;
696 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000697
698 for(; ch < end; ch++) {
699 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000700 if(!table[cv]) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000701 }
Lev Walkin775885e2004-08-22 12:47:03 +0000702 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000703}
704
705
706/*** <<< CODE [Str3] >>> ***/
707
708int
Lev Walkindfae9752004-09-29 13:19:37 +0000709Str3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000710 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000711 const Str2_t *st = (const Str2_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000712 size_t size;
713
714 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700715 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000716 "%s: value not given (%s:%d)",
717 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000718 return -1;
719 }
720
721 size = st->size;
722
723 if(((size >= 10 && size <= 20) || (size >= 25 && size <= 27))
Lev Walkine8318b82005-03-06 09:29:03 +0000724 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000725 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000726 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000727 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700728 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000729 "%s: constraint failed (%s:%d)",
730 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000731 return -1;
732 }
733}
734
735/*
736 * This type is implemented using Str2,
Lev Walkinc3808c12004-09-23 22:14:58 +0000737 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000738 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000739
740/*** <<< STAT-DEFS [Str3] >>> ***/
741
Lev Walkina7591b52014-10-12 18:37:35 -0700742static const ber_tlv_tag_t asn_DEF_Str3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000743 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000744};
Lev Walkindfae9752004-09-29 13:19:37 +0000745asn_TYPE_descriptor_t asn_DEF_Str3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000746 "Str3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000747 "Str3",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800748 IA5String_free,
749 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700750 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000751 Str3_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800752 IA5String_decode_ber,
753 IA5String_encode_der,
754 IA5String_decode_xer,
755 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700756 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400757 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000758 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000759 asn_DEF_Str3_tags_1,
760 sizeof(asn_DEF_Str3_tags_1)
761 /sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
762 asn_DEF_Str3_tags_1, /* Same as above */
763 sizeof(asn_DEF_Str3_tags_1)
764 /sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400765 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000766 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000767 0, 0, /* No members */
768 0 /* No specifics */
769};
770
771
Lev Walkin8a99bf72004-09-10 06:07:39 +0000772/*** <<< INCLUDES [Str4] >>> ***/
773
774#include <IA5String.h>
775
776/*** <<< TYPE-DECLS [Str4] >>> ***/
777
Lev Walkin8a99bf72004-09-10 06:07:39 +0000778typedef IA5String_t Str4_t;
779
780/*** <<< FUNC-DECLS [Str4] >>> ***/
781
Lev Walkindfae9752004-09-29 13:19:37 +0000782extern asn_TYPE_descriptor_t asn_DEF_Str4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000783asn_struct_free_f Str4_free;
784asn_struct_print_f Str4_print;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000785asn_constr_check_f Str4_constraint;
786ber_type_decoder_f Str4_decode_ber;
787der_type_encoder_f Str4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000788xer_type_decoder_f Str4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000789xer_type_encoder_f Str4_encode_xer;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000790
791/*** <<< CTABLES [Str4] >>> ***/
792
Lev Walkine8318b82005-03-06 09:29:03 +0000793static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000794 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000795 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000796 const uint8_t *ch = st->buf;
797 const uint8_t *end = ch + st->size;
798
799 for(; ch < end; ch++) {
800 uint8_t cv = *ch;
801 if(!(cv <= 127)) return -1;
802 }
803 return 0;
804}
805
806
807/*** <<< CODE [Str4] >>> ***/
808
809int
Lev Walkindfae9752004-09-29 13:19:37 +0000810Str4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000811 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000812 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000813
814 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700815 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin8a99bf72004-09-10 06:07:39 +0000816 "%s: value not given (%s:%d)",
817 td->name, __FILE__, __LINE__);
818 return -1;
819 }
820
821
Lev Walkine8318b82005-03-06 09:29:03 +0000822 if(!check_permitted_alphabet_1(st)) {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000823 /* Constraint check succeeded */
824 return 0;
825 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700826 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin8a99bf72004-09-10 06:07:39 +0000827 "%s: constraint failed (%s:%d)",
828 td->name, __FILE__, __LINE__);
829 return -1;
830 }
831}
832
833/*
834 * This type is implemented using IA5String,
Lev Walkinc3808c12004-09-23 22:14:58 +0000835 * so here we adjust the DEF accordingly.
Lev Walkin8a99bf72004-09-10 06:07:39 +0000836 */
Lev Walkin8a99bf72004-09-10 06:07:39 +0000837
838/*** <<< STAT-DEFS [Str4] >>> ***/
839
Lev Walkina7591b52014-10-12 18:37:35 -0700840static const ber_tlv_tag_t asn_DEF_Str4_tags_1[] = {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000841 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
842};
Lev Walkindfae9752004-09-29 13:19:37 +0000843asn_TYPE_descriptor_t asn_DEF_Str4 = {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000844 "Str4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000845 "Str4",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800846 IA5String_free,
847 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700848 IA5String_compare,
Lev Walkin8a99bf72004-09-10 06:07:39 +0000849 Str4_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800850 IA5String_decode_ber,
851 IA5String_encode_der,
852 IA5String_decode_xer,
853 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700854 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400855 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin8a99bf72004-09-10 06:07:39 +0000856 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000857 asn_DEF_Str4_tags_1,
858 sizeof(asn_DEF_Str4_tags_1)
859 /sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
860 asn_DEF_Str4_tags_1, /* Same as above */
861 sizeof(asn_DEF_Str4_tags_1)
862 /sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400863 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000864 0, /* No PER visible constraints */
Lev Walkin8a99bf72004-09-10 06:07:39 +0000865 0, 0, /* No members */
866 0 /* No specifics */
867};
868
869
Lev Walkin006de1c2004-08-20 13:37:45 +0000870/*** <<< INCLUDES [PER-Visible] >>> ***/
871
872#include <IA5String.h>
873
874/*** <<< TYPE-DECLS [PER-Visible] >>> ***/
875
Lev Walkin006de1c2004-08-20 13:37:45 +0000876typedef IA5String_t PER_Visible_t;
877
Lev Walkin006de1c2004-08-20 13:37:45 +0000878/*** <<< FUNC-DECLS [PER-Visible] >>> ***/
879
Lev Walkindfae9752004-09-29 13:19:37 +0000880extern asn_TYPE_descriptor_t asn_DEF_PER_Visible;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000881asn_struct_free_f PER_Visible_free;
882asn_struct_print_f PER_Visible_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000883asn_constr_check_f PER_Visible_constraint;
884ber_type_decoder_f PER_Visible_decode_ber;
885der_type_encoder_f PER_Visible_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000886xer_type_decoder_f PER_Visible_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000887xer_type_encoder_f PER_Visible_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000888
889/*** <<< CTABLES [PER-Visible] >>> ***/
890
Lev Walkine8318b82005-03-06 09:29:03 +0000891static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000892 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000893 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000894 const uint8_t *ch = st->buf;
895 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000896
897 for(; ch < end; ch++) {
898 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000899 if(!(cv >= 65 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000900 }
Lev Walkin775885e2004-08-22 12:47:03 +0000901 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000902}
903
904
905/*** <<< CODE [PER-Visible] >>> ***/
906
907int
Lev Walkindfae9752004-09-29 13:19:37 +0000908PER_Visible_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000909 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000910 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000911
912 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700913 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000914 "%s: value not given (%s:%d)",
915 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000916 return -1;
917 }
918
919
Lev Walkine8318b82005-03-06 09:29:03 +0000920 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000921 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000922 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000923 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700924 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000925 "%s: constraint failed (%s:%d)",
926 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000927 return -1;
928 }
929}
930
931/*
932 * This type is implemented using IA5String,
Lev Walkinc3808c12004-09-23 22:14:58 +0000933 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000934 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000935
936/*** <<< STAT-DEFS [PER-Visible] >>> ***/
937
Lev Walkina7591b52014-10-12 18:37:35 -0700938static const ber_tlv_tag_t asn_DEF_PER_Visible_tags_1[] = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000939 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
940};
Lev Walkindfae9752004-09-29 13:19:37 +0000941asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000942 "PER-Visible",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000943 "PER-Visible",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800944 IA5String_free,
945 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -0700946 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +0000947 PER_Visible_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +0800948 IA5String_decode_ber,
949 IA5String_encode_der,
950 IA5String_decode_xer,
951 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -0700952 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +0400953 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +0000954 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +0000955 asn_DEF_PER_Visible_tags_1,
956 sizeof(asn_DEF_PER_Visible_tags_1)
957 /sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
958 asn_DEF_PER_Visible_tags_1, /* Same as above */
959 sizeof(asn_DEF_PER_Visible_tags_1)
960 /sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +0400961 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +0000962 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +0000963 0, 0, /* No members */
964 0 /* No specifics */
965};
966
967
968/*** <<< INCLUDES [PER-Visible-2] >>> ***/
969
Lev Walkin22b5ed42006-09-13 02:51:20 +0000970#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000971
972/*** <<< TYPE-DECLS [PER-Visible-2] >>> ***/
973
Lev Walkin006de1c2004-08-20 13:37:45 +0000974typedef PER_Visible_t PER_Visible_2_t;
975
Lev Walkin006de1c2004-08-20 13:37:45 +0000976/*** <<< FUNC-DECLS [PER-Visible-2] >>> ***/
977
Lev Walkindfae9752004-09-29 13:19:37 +0000978extern asn_TYPE_descriptor_t asn_DEF_PER_Visible_2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000979asn_struct_free_f PER_Visible_2_free;
980asn_struct_print_f PER_Visible_2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000981asn_constr_check_f PER_Visible_2_constraint;
982ber_type_decoder_f PER_Visible_2_decode_ber;
983der_type_encoder_f PER_Visible_2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000984xer_type_decoder_f PER_Visible_2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000985xer_type_encoder_f PER_Visible_2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000986
987/*** <<< CTABLES [PER-Visible-2] >>> ***/
988
Lev Walkine8318b82005-03-06 09:29:03 +0000989static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000990 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000991 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000992 const uint8_t *ch = st->buf;
993 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000994
995 for(; ch < end; ch++) {
996 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000997 if(!(cv >= 69 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000998 }
Lev Walkin775885e2004-08-22 12:47:03 +0000999 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001000}
1001
1002
1003/*** <<< CODE [PER-Visible-2] >>> ***/
1004
1005int
Lev Walkindfae9752004-09-29 13:19:37 +00001006PER_Visible_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001007 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001008 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001009
1010 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001011 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001012 "%s: value not given (%s:%d)",
1013 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001014 return -1;
1015 }
1016
1017
Lev Walkine8318b82005-03-06 09:29:03 +00001018 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001019 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001020 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001021 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001022 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001023 "%s: constraint failed (%s:%d)",
1024 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001025 return -1;
1026 }
1027}
1028
1029/*
1030 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001031 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001032 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001033
1034/*** <<< STAT-DEFS [PER-Visible-2] >>> ***/
1035
Lev Walkina7591b52014-10-12 18:37:35 -07001036static const ber_tlv_tag_t asn_DEF_PER_Visible_2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001037 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001038};
Lev Walkindfae9752004-09-29 13:19:37 +00001039asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001040 "PER-Visible-2",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001041 "PER-Visible-2",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001042 IA5String_free,
1043 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001044 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001045 PER_Visible_2_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001046 IA5String_decode_ber,
1047 IA5String_encode_der,
1048 IA5String_decode_xer,
1049 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001050 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001051 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001052 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001053 asn_DEF_PER_Visible_2_tags_1,
1054 sizeof(asn_DEF_PER_Visible_2_tags_1)
1055 /sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
1056 asn_DEF_PER_Visible_2_tags_1, /* Same as above */
1057 sizeof(asn_DEF_PER_Visible_2_tags_1)
1058 /sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001059 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001060 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001061 0, 0, /* No members */
1062 0 /* No specifics */
1063};
1064
1065
1066/*** <<< INCLUDES [Not-PER-Visible-1] >>> ***/
1067
Lev Walkin22b5ed42006-09-13 02:51:20 +00001068#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001069
1070/*** <<< TYPE-DECLS [Not-PER-Visible-1] >>> ***/
1071
Lev Walkin006de1c2004-08-20 13:37:45 +00001072typedef PER_Visible_t Not_PER_Visible_1_t;
1073
Lev Walkin006de1c2004-08-20 13:37:45 +00001074/*** <<< FUNC-DECLS [Not-PER-Visible-1] >>> ***/
1075
Lev Walkindfae9752004-09-29 13:19:37 +00001076extern asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001077asn_struct_free_f Not_PER_Visible_1_free;
1078asn_struct_print_f Not_PER_Visible_1_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001079asn_constr_check_f Not_PER_Visible_1_constraint;
1080ber_type_decoder_f Not_PER_Visible_1_decode_ber;
1081der_type_encoder_f Not_PER_Visible_1_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001082xer_type_decoder_f Not_PER_Visible_1_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001083xer_type_encoder_f Not_PER_Visible_1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001084
1085/*** <<< CTABLES [Not-PER-Visible-1] >>> ***/
1086
Lev Walkine8318b82005-03-06 09:29:03 +00001087static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001088 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001089 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001090 const uint8_t *ch = st->buf;
1091 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001092
1093 for(; ch < end; ch++) {
1094 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001095 if(!(cv >= 65 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001096 }
Lev Walkin775885e2004-08-22 12:47:03 +00001097 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001098}
1099
1100
1101/*** <<< CODE [Not-PER-Visible-1] >>> ***/
1102
1103int
Lev Walkindfae9752004-09-29 13:19:37 +00001104Not_PER_Visible_1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001105 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001106 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001107
1108 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001109 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001110 "%s: value not given (%s:%d)",
1111 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001112 return -1;
1113 }
1114
1115
Lev Walkine8318b82005-03-06 09:29:03 +00001116 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001117 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001118 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001119 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001120 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001121 "%s: constraint failed (%s:%d)",
1122 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001123 return -1;
1124 }
1125}
1126
1127/*
1128 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001129 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001130 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001131
1132/*** <<< STAT-DEFS [Not-PER-Visible-1] >>> ***/
1133
Lev Walkina7591b52014-10-12 18:37:35 -07001134static const ber_tlv_tag_t asn_DEF_Not_PER_Visible_1_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001135 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001136};
Lev Walkindfae9752004-09-29 13:19:37 +00001137asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001138 "Not-PER-Visible-1",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001139 "Not-PER-Visible-1",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001140 IA5String_free,
1141 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001142 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001143 Not_PER_Visible_1_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001144 IA5String_decode_ber,
1145 IA5String_encode_der,
1146 IA5String_decode_xer,
1147 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001148 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001149 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001150 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001151 asn_DEF_Not_PER_Visible_1_tags_1,
1152 sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
1153 /sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
1154 asn_DEF_Not_PER_Visible_1_tags_1, /* Same as above */
1155 sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
1156 /sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001157 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001158 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001159 0, 0, /* No members */
1160 0 /* No specifics */
1161};
1162
1163
1164/*** <<< INCLUDES [Not-PER-Visible-2] >>> ***/
1165
Lev Walkin22b5ed42006-09-13 02:51:20 +00001166#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001167
1168/*** <<< TYPE-DECLS [Not-PER-Visible-2] >>> ***/
1169
Lev Walkin006de1c2004-08-20 13:37:45 +00001170typedef PER_Visible_t Not_PER_Visible_2_t;
1171
Lev Walkin006de1c2004-08-20 13:37:45 +00001172/*** <<< FUNC-DECLS [Not-PER-Visible-2] >>> ***/
1173
Lev Walkindfae9752004-09-29 13:19:37 +00001174extern asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001175asn_struct_free_f Not_PER_Visible_2_free;
1176asn_struct_print_f Not_PER_Visible_2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001177asn_constr_check_f Not_PER_Visible_2_constraint;
1178ber_type_decoder_f Not_PER_Visible_2_decode_ber;
1179der_type_encoder_f Not_PER_Visible_2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001180xer_type_decoder_f Not_PER_Visible_2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001181xer_type_encoder_f Not_PER_Visible_2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001182
Lev Walkind35c8b52004-08-25 02:08:08 +00001183/*** <<< CTABLES [Not-PER-Visible-2] >>> ***/
1184
Lev Walkine8318b82005-03-06 09:29:03 +00001185static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001186 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001187 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +00001188 const uint8_t *ch = st->buf;
1189 const uint8_t *end = ch + st->size;
1190
1191 for(; ch < end; ch++) {
1192 uint8_t cv = *ch;
1193 if(!(cv >= 65 && cv <= 66)) return -1;
1194 }
1195 return 0;
1196}
1197
1198
Lev Walkin006de1c2004-08-20 13:37:45 +00001199/*** <<< CODE [Not-PER-Visible-2] >>> ***/
1200
1201int
Lev Walkindfae9752004-09-29 13:19:37 +00001202Not_PER_Visible_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001203 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001204 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001205
1206 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001207 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001208 "%s: value not given (%s:%d)",
1209 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001210 return -1;
1211 }
1212
1213
Lev Walkine8318b82005-03-06 09:29:03 +00001214 if(!check_permitted_alphabet_1(st)) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001215 /* Constraint check succeeded */
1216 return 0;
1217 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001218 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +00001219 "%s: constraint failed (%s:%d)",
1220 td->name, __FILE__, __LINE__);
1221 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001222 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001223}
1224
1225/*
1226 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001227 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001228 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001229
1230/*** <<< STAT-DEFS [Not-PER-Visible-2] >>> ***/
1231
Lev Walkina7591b52014-10-12 18:37:35 -07001232static const ber_tlv_tag_t asn_DEF_Not_PER_Visible_2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001233 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001234};
Lev Walkindfae9752004-09-29 13:19:37 +00001235asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001236 "Not-PER-Visible-2",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001237 "Not-PER-Visible-2",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001238 IA5String_free,
1239 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001240 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001241 Not_PER_Visible_2_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001242 IA5String_decode_ber,
1243 IA5String_encode_der,
1244 IA5String_decode_xer,
1245 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001246 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001247 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001248 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001249 asn_DEF_Not_PER_Visible_2_tags_1,
1250 sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
1251 /sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
1252 asn_DEF_Not_PER_Visible_2_tags_1, /* Same as above */
1253 sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
1254 /sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001255 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001256 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001257 0, 0, /* No members */
1258 0 /* No specifics */
1259};
1260
1261
1262/*** <<< INCLUDES [Not-PER-Visible-3] >>> ***/
1263
Lev Walkin22b5ed42006-09-13 02:51:20 +00001264#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001265
1266/*** <<< TYPE-DECLS [Not-PER-Visible-3] >>> ***/
1267
Lev Walkin006de1c2004-08-20 13:37:45 +00001268typedef PER_Visible_t Not_PER_Visible_3_t;
1269
Lev Walkin006de1c2004-08-20 13:37:45 +00001270/*** <<< FUNC-DECLS [Not-PER-Visible-3] >>> ***/
1271
Lev Walkindfae9752004-09-29 13:19:37 +00001272extern asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001273asn_struct_free_f Not_PER_Visible_3_free;
1274asn_struct_print_f Not_PER_Visible_3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001275asn_constr_check_f Not_PER_Visible_3_constraint;
1276ber_type_decoder_f Not_PER_Visible_3_decode_ber;
1277der_type_encoder_f Not_PER_Visible_3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001278xer_type_decoder_f Not_PER_Visible_3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001279xer_type_encoder_f Not_PER_Visible_3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001280
Lev Walkind35c8b52004-08-25 02:08:08 +00001281/*** <<< CTABLES [Not-PER-Visible-3] >>> ***/
1282
Lev Walkine8318b82005-03-06 09:29:03 +00001283static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001284 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001285 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +00001286 const uint8_t *ch = st->buf;
1287 const uint8_t *end = ch + st->size;
1288
1289 for(; ch < end; ch++) {
1290 uint8_t cv = *ch;
1291 if(!(cv >= 65 && cv <= 66)) return -1;
1292 }
1293 return 0;
1294}
1295
1296
Lev Walkin006de1c2004-08-20 13:37:45 +00001297/*** <<< CODE [Not-PER-Visible-3] >>> ***/
1298
1299int
Lev Walkindfae9752004-09-29 13:19:37 +00001300Not_PER_Visible_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001301 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001302 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001303
1304 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001305 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001306 "%s: value not given (%s:%d)",
1307 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001308 return -1;
1309 }
1310
1311
Lev Walkine8318b82005-03-06 09:29:03 +00001312 if(!check_permitted_alphabet_1(st)) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001313 /* Constraint check succeeded */
1314 return 0;
1315 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001316 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +00001317 "%s: constraint failed (%s:%d)",
1318 td->name, __FILE__, __LINE__);
1319 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001320 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001321}
1322
1323/*
1324 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001325 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001326 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001327
1328/*** <<< STAT-DEFS [Not-PER-Visible-3] >>> ***/
1329
Lev Walkina7591b52014-10-12 18:37:35 -07001330static const ber_tlv_tag_t asn_DEF_Not_PER_Visible_3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001331 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001332};
Lev Walkindfae9752004-09-29 13:19:37 +00001333asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001334 "Not-PER-Visible-3",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001335 "Not-PER-Visible-3",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001336 IA5String_free,
1337 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001338 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001339 Not_PER_Visible_3_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001340 IA5String_decode_ber,
1341 IA5String_encode_der,
1342 IA5String_decode_xer,
1343 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001344 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001345 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001346 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001347 asn_DEF_Not_PER_Visible_3_tags_1,
1348 sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
1349 /sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
1350 asn_DEF_Not_PER_Visible_3_tags_1, /* Same as above */
1351 sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
1352 /sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001353 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001354 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001355 0, 0, /* No members */
1356 0 /* No specifics */
1357};
1358
1359
1360/*** <<< INCLUDES [SIZE-but-not-FROM] >>> ***/
1361
Lev Walkin22b5ed42006-09-13 02:51:20 +00001362#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001363
1364/*** <<< TYPE-DECLS [SIZE-but-not-FROM] >>> ***/
1365
Lev Walkin006de1c2004-08-20 13:37:45 +00001366typedef PER_Visible_t SIZE_but_not_FROM_t;
1367
Lev Walkin006de1c2004-08-20 13:37:45 +00001368/*** <<< FUNC-DECLS [SIZE-but-not-FROM] >>> ***/
1369
Lev Walkindfae9752004-09-29 13:19:37 +00001370extern asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001371asn_struct_free_f SIZE_but_not_FROM_free;
1372asn_struct_print_f SIZE_but_not_FROM_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001373asn_constr_check_f SIZE_but_not_FROM_constraint;
1374ber_type_decoder_f SIZE_but_not_FROM_decode_ber;
1375der_type_encoder_f SIZE_but_not_FROM_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001376xer_type_decoder_f SIZE_but_not_FROM_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001377xer_type_encoder_f SIZE_but_not_FROM_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001378
1379/*** <<< CTABLES [SIZE-but-not-FROM] >>> ***/
1380
Lev Walkine8318b82005-03-06 09:29:03 +00001381static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001382 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001383 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001384 const uint8_t *ch = st->buf;
1385 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001386
1387 for(; ch < end; ch++) {
1388 uint8_t cv = *ch;
Lev Walkind35c8b52004-08-25 02:08:08 +00001389 if(!(cv >= 65 && cv <= 68)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001390 }
Lev Walkin775885e2004-08-22 12:47:03 +00001391 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001392}
1393
1394
1395/*** <<< CODE [SIZE-but-not-FROM] >>> ***/
1396
1397int
Lev Walkindfae9752004-09-29 13:19:37 +00001398SIZE_but_not_FROM_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001399 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001400 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001401 size_t size;
1402
1403 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001404 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001405 "%s: value not given (%s:%d)",
1406 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001407 return -1;
1408 }
1409
1410 size = st->size;
1411
1412 if((size >= 1 && size <= 4)
Lev Walkine8318b82005-03-06 09:29:03 +00001413 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001414 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001415 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001416 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001417 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001418 "%s: constraint failed (%s:%d)",
1419 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001420 return -1;
1421 }
1422}
1423
1424/*
1425 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001426 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001427 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001428
1429/*** <<< STAT-DEFS [SIZE-but-not-FROM] >>> ***/
1430
Lev Walkina7591b52014-10-12 18:37:35 -07001431static const ber_tlv_tag_t asn_DEF_SIZE_but_not_FROM_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001432 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001433};
Lev Walkindfae9752004-09-29 13:19:37 +00001434asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001435 "SIZE-but-not-FROM",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001436 "SIZE-but-not-FROM",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001437 IA5String_free,
1438 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001439 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001440 SIZE_but_not_FROM_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001441 IA5String_decode_ber,
1442 IA5String_encode_der,
1443 IA5String_decode_xer,
1444 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001445 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001446 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001447 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001448 asn_DEF_SIZE_but_not_FROM_tags_1,
1449 sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
1450 /sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
1451 asn_DEF_SIZE_but_not_FROM_tags_1, /* Same as above */
1452 sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
1453 /sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001454 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001455 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001456 0, 0, /* No members */
1457 0 /* No specifics */
1458};
1459
1460
1461/*** <<< INCLUDES [SIZE-and-FROM] >>> ***/
1462
Lev Walkin22b5ed42006-09-13 02:51:20 +00001463#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001464
1465/*** <<< TYPE-DECLS [SIZE-and-FROM] >>> ***/
1466
Lev Walkin006de1c2004-08-20 13:37:45 +00001467typedef PER_Visible_t SIZE_and_FROM_t;
1468
Lev Walkin006de1c2004-08-20 13:37:45 +00001469/*** <<< FUNC-DECLS [SIZE-and-FROM] >>> ***/
1470
Lev Walkindfae9752004-09-29 13:19:37 +00001471extern asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001472asn_struct_free_f SIZE_and_FROM_free;
1473asn_struct_print_f SIZE_and_FROM_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001474asn_constr_check_f SIZE_and_FROM_constraint;
1475ber_type_decoder_f SIZE_and_FROM_decode_ber;
1476der_type_encoder_f SIZE_and_FROM_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001477xer_type_decoder_f SIZE_and_FROM_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001478xer_type_encoder_f SIZE_and_FROM_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001479
1480/*** <<< CTABLES [SIZE-and-FROM] >>> ***/
1481
Lev Walkine8318b82005-03-06 09:29:03 +00001482static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001483 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001484 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001485 const uint8_t *ch = st->buf;
1486 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001487
1488 for(; ch < end; ch++) {
1489 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001490 if(!(cv >= 65 && cv <= 68)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001491 }
Lev Walkin775885e2004-08-22 12:47:03 +00001492 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001493}
1494
1495
1496/*** <<< CODE [SIZE-and-FROM] >>> ***/
1497
1498int
Lev Walkindfae9752004-09-29 13:19:37 +00001499SIZE_and_FROM_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001500 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001501 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001502 size_t size;
1503
1504 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001505 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001506 "%s: value not given (%s:%d)",
1507 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001508 return -1;
1509 }
1510
1511 size = st->size;
1512
1513 if((size >= 1 && size <= 4)
Lev Walkine8318b82005-03-06 09:29:03 +00001514 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001515 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001516 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001517 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001518 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001519 "%s: constraint failed (%s:%d)",
1520 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001521 return -1;
1522 }
1523}
1524
1525/*
1526 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001527 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001528 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001529
1530/*** <<< STAT-DEFS [SIZE-and-FROM] >>> ***/
1531
Lev Walkina7591b52014-10-12 18:37:35 -07001532static const ber_tlv_tag_t asn_DEF_SIZE_and_FROM_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001533 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001534};
Lev Walkindfae9752004-09-29 13:19:37 +00001535asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001536 "SIZE-and-FROM",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001537 "SIZE-and-FROM",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001538 IA5String_free,
1539 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001540 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001541 SIZE_and_FROM_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001542 IA5String_decode_ber,
1543 IA5String_encode_der,
1544 IA5String_decode_xer,
1545 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001546 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001547 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001548 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001549 asn_DEF_SIZE_and_FROM_tags_1,
1550 sizeof(asn_DEF_SIZE_and_FROM_tags_1)
1551 /sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
1552 asn_DEF_SIZE_and_FROM_tags_1, /* Same as above */
1553 sizeof(asn_DEF_SIZE_and_FROM_tags_1)
1554 /sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001555 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001556 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001557 0, 0, /* No members */
1558 0 /* No specifics */
1559};
1560
1561
1562/*** <<< INCLUDES [Neither-SIZE-nor-FROM] >>> ***/
1563
Lev Walkin22b5ed42006-09-13 02:51:20 +00001564#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001565
1566/*** <<< TYPE-DECLS [Neither-SIZE-nor-FROM] >>> ***/
1567
Lev Walkin006de1c2004-08-20 13:37:45 +00001568typedef PER_Visible_t Neither_SIZE_nor_FROM_t;
1569
Lev Walkin006de1c2004-08-20 13:37:45 +00001570/*** <<< FUNC-DECLS [Neither-SIZE-nor-FROM] >>> ***/
1571
Lev Walkindfae9752004-09-29 13:19:37 +00001572extern asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001573asn_struct_free_f Neither_SIZE_nor_FROM_free;
1574asn_struct_print_f Neither_SIZE_nor_FROM_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001575asn_constr_check_f Neither_SIZE_nor_FROM_constraint;
1576ber_type_decoder_f Neither_SIZE_nor_FROM_decode_ber;
1577der_type_encoder_f Neither_SIZE_nor_FROM_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001578xer_type_decoder_f Neither_SIZE_nor_FROM_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001579xer_type_encoder_f Neither_SIZE_nor_FROM_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001580
1581/*** <<< CTABLES [Neither-SIZE-nor-FROM] >>> ***/
1582
Lev Walkine8318b82005-03-06 09:29:03 +00001583static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001584 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001585 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001586 const uint8_t *ch = st->buf;
1587 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001588
1589 for(; ch < end; ch++) {
1590 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001591 if(!(cv >= 65 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001592 }
Lev Walkin775885e2004-08-22 12:47:03 +00001593 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001594}
1595
1596
1597/*** <<< CODE [Neither-SIZE-nor-FROM] >>> ***/
1598
1599int
Lev Walkindfae9752004-09-29 13:19:37 +00001600Neither_SIZE_nor_FROM_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001601 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001602 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001603
1604 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001605 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001606 "%s: value not given (%s:%d)",
1607 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001608 return -1;
1609 }
1610
1611
Lev Walkine8318b82005-03-06 09:29:03 +00001612 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001613 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001614 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001615 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001616 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001617 "%s: constraint failed (%s:%d)",
1618 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001619 return -1;
1620 }
1621}
1622
1623/*
1624 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001625 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001626 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001627
1628/*** <<< STAT-DEFS [Neither-SIZE-nor-FROM] >>> ***/
1629
Lev Walkina7591b52014-10-12 18:37:35 -07001630static const ber_tlv_tag_t asn_DEF_Neither_SIZE_nor_FROM_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001631 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001632};
Lev Walkindfae9752004-09-29 13:19:37 +00001633asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001634 "Neither-SIZE-nor-FROM",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001635 "Neither-SIZE-nor-FROM",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001636 IA5String_free,
1637 IA5String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001638 IA5String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001639 Neither_SIZE_nor_FROM_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001640 IA5String_decode_ber,
1641 IA5String_encode_der,
1642 IA5String_decode_xer,
1643 IA5String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001644 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001645 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001646 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001647 asn_DEF_Neither_SIZE_nor_FROM_tags_1,
1648 sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
1649 /sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
1650 asn_DEF_Neither_SIZE_nor_FROM_tags_1, /* Same as above */
1651 sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
1652 /sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001653 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001654 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001655 0, 0, /* No members */
1656 0 /* No specifics */
1657};
1658
1659
Lev Walkin55cc44a2004-10-03 09:14:32 +00001660/*** <<< INCLUDES [Utf8-4] >>> ***/
1661
1662#include <UTF8String.h>
1663
1664/*** <<< TYPE-DECLS [Utf8-4] >>> ***/
1665
Lev Walkin55cc44a2004-10-03 09:14:32 +00001666typedef UTF8String_t Utf8_4_t;
1667
1668/*** <<< FUNC-DECLS [Utf8-4] >>> ***/
1669
1670extern asn_TYPE_descriptor_t asn_DEF_Utf8_4;
1671asn_struct_free_f Utf8_4_free;
1672asn_struct_print_f Utf8_4_print;
1673asn_constr_check_f Utf8_4_constraint;
1674ber_type_decoder_f Utf8_4_decode_ber;
1675der_type_encoder_f Utf8_4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001676xer_type_decoder_f Utf8_4_decode_xer;
Lev Walkin55cc44a2004-10-03 09:14:32 +00001677xer_type_encoder_f Utf8_4_encode_xer;
1678
1679/*** <<< CTABLES [Utf8-4] >>> ***/
1680
Lev Walkine8318b82005-03-06 09:29:03 +00001681static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin55cc44a2004-10-03 09:14:32 +00001682 if(UTF8String_length((const UTF8String_t *)sptr) < 0)
1683 return -1; /* Alphabet (sic!) test failed. */
1684
1685 return 0;
1686}
1687
1688
1689/*** <<< CODE [Utf8-4] >>> ***/
1690
1691int
1692Utf8_4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001693 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001694 const UTF8String_t *st = (const UTF8String_t *)sptr;
Lev Walkin55cc44a2004-10-03 09:14:32 +00001695
1696 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001697 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin55cc44a2004-10-03 09:14:32 +00001698 "%s: value not given (%s:%d)",
1699 td->name, __FILE__, __LINE__);
1700 return -1;
1701 }
1702
1703
Lev Walkine8318b82005-03-06 09:29:03 +00001704 if(!check_permitted_alphabet_1(st)) {
Lev Walkin55cc44a2004-10-03 09:14:32 +00001705 /* Constraint check succeeded */
1706 return 0;
1707 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001708 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin55cc44a2004-10-03 09:14:32 +00001709 "%s: constraint failed (%s:%d)",
1710 td->name, __FILE__, __LINE__);
1711 return -1;
1712 }
1713}
1714
1715/*
1716 * This type is implemented using UTF8String,
1717 * so here we adjust the DEF accordingly.
1718 */
Lev Walkin55cc44a2004-10-03 09:14:32 +00001719
1720/*** <<< STAT-DEFS [Utf8-4] >>> ***/
1721
Lev Walkina7591b52014-10-12 18:37:35 -07001722static const ber_tlv_tag_t asn_DEF_Utf8_4_tags_1[] = {
Lev Walkin55cc44a2004-10-03 09:14:32 +00001723 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
1724};
1725asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
1726 "Utf8-4",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001727 "Utf8-4",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001728 UTF8String_free,
1729 UTF8String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001730 UTF8String_compare,
Lev Walkin55cc44a2004-10-03 09:14:32 +00001731 Utf8_4_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001732 UTF8String_decode_ber,
1733 UTF8String_encode_der,
1734 UTF8String_decode_xer,
1735 UTF8String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001736 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001737 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin55cc44a2004-10-03 09:14:32 +00001738 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001739 asn_DEF_Utf8_4_tags_1,
1740 sizeof(asn_DEF_Utf8_4_tags_1)
1741 /sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
1742 asn_DEF_Utf8_4_tags_1, /* Same as above */
1743 sizeof(asn_DEF_Utf8_4_tags_1)
1744 /sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001745 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001746 0, /* No PER visible constraints */
Lev Walkin55cc44a2004-10-03 09:14:32 +00001747 0, 0, /* No members */
1748 0 /* No specifics */
1749};
1750
1751
Lev Walkin006de1c2004-08-20 13:37:45 +00001752/*** <<< INCLUDES [Utf8-3] >>> ***/
1753
Lev Walkin22b5ed42006-09-13 02:51:20 +00001754#include "Utf8-2.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001755
1756/*** <<< TYPE-DECLS [Utf8-3] >>> ***/
1757
Lev Walkin006de1c2004-08-20 13:37:45 +00001758typedef Utf8_2_t Utf8_3_t;
1759
Lev Walkin006de1c2004-08-20 13:37:45 +00001760/*** <<< FUNC-DECLS [Utf8-3] >>> ***/
1761
Lev Walkindfae9752004-09-29 13:19:37 +00001762extern asn_TYPE_descriptor_t asn_DEF_Utf8_3;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001763asn_struct_free_f Utf8_3_free;
1764asn_struct_print_f Utf8_3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001765asn_constr_check_f Utf8_3_constraint;
1766ber_type_decoder_f Utf8_3_decode_ber;
1767der_type_encoder_f Utf8_3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001768xer_type_decoder_f Utf8_3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001769xer_type_encoder_f Utf8_3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001770
1771/*** <<< CTABLES [Utf8-3] >>> ***/
1772
Lev Walkina7591b52014-10-12 18:37:35 -07001773static const int permitted_alphabet_table_1[128] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +00001774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1778 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, /* ABCDEFGHIJKLMNO */
177916,17,18,19,20,21,22,23,24,25,26, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */
1780 0,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41, /* abcdefghijklmno */
178142,43,44,45,46,47,48,49,50,51,52, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
Lev Walkin006de1c2004-08-20 13:37:45 +00001782};
1783
Lev Walkine8318b82005-03-06 09:29:03 +00001784static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -07001785 const int *table = permitted_alphabet_table_1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001786 /* The underlying type is UTF8String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001787 const UTF8String_t *st = (const UTF8String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001788 const uint8_t *ch = st->buf;
1789 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001790
1791 for(; ch < end; ch++) {
1792 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001793 if(cv >= 0x80) return -1;
1794 if(!table[cv]) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001795 }
Lev Walkin775885e2004-08-22 12:47:03 +00001796 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001797}
1798
1799
1800/*** <<< CODE [Utf8-3] >>> ***/
1801
1802int
Lev Walkindfae9752004-09-29 13:19:37 +00001803Utf8_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001804 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001805 const Utf8_2_t *st = (const Utf8_2_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001806 size_t size;
1807
1808 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001809 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001810 "%s: value not given (%s:%d)",
1811 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001812 return -1;
1813 }
1814
Lev Walkinfac2e942004-10-02 16:33:46 +00001815 size = UTF8String_length(st);
Lev Walkin00df16d2004-10-02 16:44:30 +00001816 if((ssize_t)size < 0) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001817 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinfac2e942004-10-02 16:33:46 +00001818 "%s: UTF-8: broken encoding (%s:%d)",
1819 td->name, __FILE__, __LINE__);
1820 return -1;
1821 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001822
1823 if((size >= 1 && size <= 2)
Lev Walkine8318b82005-03-06 09:29:03 +00001824 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001825 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001826 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001827 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001828 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001829 "%s: constraint failed (%s:%d)",
1830 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001831 return -1;
1832 }
1833}
1834
1835/*
1836 * This type is implemented using Utf8_2,
Lev Walkinc3808c12004-09-23 22:14:58 +00001837 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001838 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001839
1840/*** <<< STAT-DEFS [Utf8-3] >>> ***/
1841
Lev Walkina7591b52014-10-12 18:37:35 -07001842static const ber_tlv_tag_t asn_DEF_Utf8_3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001843 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001844};
Lev Walkindfae9752004-09-29 13:19:37 +00001845asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001846 "Utf8-3",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001847 "Utf8-3",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001848 UTF8String_free,
1849 UTF8String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001850 UTF8String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001851 Utf8_3_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001852 UTF8String_decode_ber,
1853 UTF8String_encode_der,
1854 UTF8String_decode_xer,
1855 UTF8String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001856 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001857 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001858 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001859 asn_DEF_Utf8_3_tags_1,
1860 sizeof(asn_DEF_Utf8_3_tags_1)
1861 /sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
1862 asn_DEF_Utf8_3_tags_1, /* Same as above */
1863 sizeof(asn_DEF_Utf8_3_tags_1)
1864 /sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001865 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001866 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001867 0, 0, /* No members */
1868 0 /* No specifics */
1869};
1870
1871
1872/*** <<< INCLUDES [Utf8-2] >>> ***/
1873
Lev Walkin22b5ed42006-09-13 02:51:20 +00001874#include "Utf8-1.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001875
1876/*** <<< TYPE-DECLS [Utf8-2] >>> ***/
1877
Lev Walkin006de1c2004-08-20 13:37:45 +00001878typedef Utf8_1_t Utf8_2_t;
1879
Lev Walkin006de1c2004-08-20 13:37:45 +00001880/*** <<< FUNC-DECLS [Utf8-2] >>> ***/
1881
Lev Walkindfae9752004-09-29 13:19:37 +00001882extern asn_TYPE_descriptor_t asn_DEF_Utf8_2;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001883asn_struct_free_f Utf8_2_free;
1884asn_struct_print_f Utf8_2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001885asn_constr_check_f Utf8_2_constraint;
1886ber_type_decoder_f Utf8_2_decode_ber;
1887der_type_encoder_f Utf8_2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001888xer_type_decoder_f Utf8_2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001889xer_type_encoder_f Utf8_2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001890
1891/*** <<< CODE [Utf8-2] >>> ***/
1892
1893int
Lev Walkindfae9752004-09-29 13:19:37 +00001894Utf8_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001895 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001896 const Utf8_1_t *st = (const Utf8_1_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001897 size_t size;
1898
1899 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001900 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001901 "%s: value not given (%s:%d)",
1902 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001903 return -1;
1904 }
1905
Lev Walkinfac2e942004-10-02 16:33:46 +00001906 size = UTF8String_length(st);
Lev Walkin00df16d2004-10-02 16:44:30 +00001907 if((ssize_t)size < 0) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001908 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinfac2e942004-10-02 16:33:46 +00001909 "%s: UTF-8: broken encoding (%s:%d)",
1910 td->name, __FILE__, __LINE__);
1911 return -1;
1912 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001913
1914 if((size >= 1 && size <= 2)) {
1915 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001916 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001917 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001918 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001919 "%s: constraint failed (%s:%d)",
1920 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001921 return -1;
1922 }
1923}
1924
1925/*
1926 * This type is implemented using Utf8_1,
Lev Walkinc3808c12004-09-23 22:14:58 +00001927 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001928 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001929
1930/*** <<< STAT-DEFS [Utf8-2] >>> ***/
1931
Lev Walkina7591b52014-10-12 18:37:35 -07001932static const ber_tlv_tag_t asn_DEF_Utf8_2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001933 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001934};
Lev Walkindfae9752004-09-29 13:19:37 +00001935asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001936 "Utf8-2",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001937 "Utf8-2",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001938 UTF8String_free,
1939 UTF8String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001940 UTF8String_compare,
Lev Walkin006de1c2004-08-20 13:37:45 +00001941 Utf8_2_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001942 UTF8String_decode_ber,
1943 UTF8String_encode_der,
1944 UTF8String_decode_xer,
1945 UTF8String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07001946 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04001947 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin006de1c2004-08-20 13:37:45 +00001948 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00001949 asn_DEF_Utf8_2_tags_1,
1950 sizeof(asn_DEF_Utf8_2_tags_1)
1951 /sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
1952 asn_DEF_Utf8_2_tags_1, /* Same as above */
1953 sizeof(asn_DEF_Utf8_2_tags_1)
1954 /sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04001955 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00001956 0, /* No PER visible constraints */
Lev Walkin006de1c2004-08-20 13:37:45 +00001957 0, 0, /* No members */
1958 0 /* No specifics */
1959};
1960
1961
1962/*** <<< INCLUDES [Utf8-1] >>> ***/
1963
1964#include <UTF8String.h>
1965
1966/*** <<< TYPE-DECLS [Utf8-1] >>> ***/
1967
Lev Walkin006de1c2004-08-20 13:37:45 +00001968typedef UTF8String_t Utf8_1_t;
1969
Lev Walkin006de1c2004-08-20 13:37:45 +00001970/*** <<< FUNC-DECLS [Utf8-1] >>> ***/
1971
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001972extern asn_TYPE_descriptor_t asn_DEF_Utf8_1;
1973asn_struct_free_f Utf8_1_free;
1974asn_struct_print_f Utf8_1_print;
1975asn_constr_check_f Utf8_1_constraint;
1976ber_type_decoder_f Utf8_1_decode_ber;
1977der_type_encoder_f Utf8_1_encode_der;
1978xer_type_decoder_f Utf8_1_decode_xer;
1979xer_type_encoder_f Utf8_1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001980
1981/*** <<< CODE [Utf8-1] >>> ***/
1982
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001983/*
1984 * This type is implemented using UTF8String,
1985 * so here we adjust the DEF accordingly.
1986 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001987
1988/*** <<< STAT-DEFS [Utf8-1] >>> ***/
1989
Lev Walkina7591b52014-10-12 18:37:35 -07001990static const ber_tlv_tag_t asn_DEF_Utf8_1_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001991 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
1992};
1993asn_TYPE_descriptor_t asn_DEF_Utf8_1 = {
1994 "Utf8-1",
1995 "Utf8-1",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001996 UTF8String_free,
1997 UTF8String_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07001998 UTF8String_compare,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001999 UTF8String_constraint,
2000 UTF8String_decode_ber,
2001 UTF8String_encode_der,
2002 UTF8String_decode_xer,
2003 UTF8String_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002004 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002005 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002006 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00002007 asn_DEF_Utf8_1_tags_1,
2008 sizeof(asn_DEF_Utf8_1_tags_1)
2009 /sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
2010 asn_DEF_Utf8_1_tags_1, /* Same as above */
2011 sizeof(asn_DEF_Utf8_1_tags_1)
2012 /sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002013 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002014 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002015 0, 0, /* No members */
2016 0 /* No specifics */
2017};
Lev Walkin006de1c2004-08-20 13:37:45 +00002018
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002019
2020/*** <<< INCLUDES [VisibleIdentifier] >>> ***/
2021
Lev Walkin22b5ed42006-09-13 02:51:20 +00002022#include "Identifier.h"
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002023
2024/*** <<< TYPE-DECLS [VisibleIdentifier] >>> ***/
2025
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002026typedef Identifier_t VisibleIdentifier_t;
2027
2028/*** <<< FUNC-DECLS [VisibleIdentifier] >>> ***/
2029
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002030extern asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier;
2031asn_struct_free_f VisibleIdentifier_free;
2032asn_struct_print_f VisibleIdentifier_print;
2033asn_constr_check_f VisibleIdentifier_constraint;
2034ber_type_decoder_f VisibleIdentifier_decode_ber;
2035der_type_encoder_f VisibleIdentifier_encode_der;
2036xer_type_decoder_f VisibleIdentifier_decode_xer;
2037xer_type_encoder_f VisibleIdentifier_encode_xer;
2038
2039/*** <<< CTABLES [VisibleIdentifier] >>> ***/
2040
Lev Walkina7591b52014-10-12 18:37:35 -07002041static const int permitted_alphabet_table_1[256] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +00002042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
2043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
2044 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
2045 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
2046 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
204727,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
2048 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
204954,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002050};
2051
Lev Walkine8318b82005-03-06 09:29:03 +00002052static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -07002053 const int *table = permitted_alphabet_table_1;
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002054 /* The underlying type is VisibleString */
2055 const VisibleString_t *st = (const VisibleString_t *)sptr;
2056 const uint8_t *ch = st->buf;
2057 const uint8_t *end = ch + st->size;
2058
2059 for(; ch < end; ch++) {
2060 uint8_t cv = *ch;
2061 if(!table[cv]) return -1;
2062 }
2063 return 0;
2064}
2065
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002066
Lev Walkin154aa182004-09-26 13:12:56 +00002067/*** <<< CODE [VisibleIdentifier] >>> ***/
2068
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002069int
2070VisibleIdentifier_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002071 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002072 const Identifier_t *st = (const Identifier_t *)sptr;
2073 size_t size;
2074
2075 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002076 ASN__CTFAIL(app_key, td, sptr,
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002077 "%s: value not given (%s:%d)",
2078 td->name, __FILE__, __LINE__);
2079 return -1;
2080 }
2081
2082 size = st->size;
2083
2084 if((size >= 1 && size <= 32)
Lev Walkine8318b82005-03-06 09:29:03 +00002085 && !check_permitted_alphabet_1(st)) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002086 /* Constraint check succeeded */
2087 return 0;
2088 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002089 ASN__CTFAIL(app_key, td, sptr,
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002090 "%s: constraint failed (%s:%d)",
2091 td->name, __FILE__, __LINE__);
2092 return -1;
2093 }
2094}
2095
2096/*
2097 * This type is implemented using Identifier,
2098 * so here we adjust the DEF accordingly.
2099 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002100
2101/*** <<< STAT-DEFS [VisibleIdentifier] >>> ***/
2102
Lev Walkina7591b52014-10-12 18:37:35 -07002103static const ber_tlv_tag_t asn_DEF_VisibleIdentifier_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002104 (ASN_TAG_CLASS_UNIVERSAL | (26 << 2))
2105};
2106asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier = {
2107 "VisibleIdentifier",
2108 "VisibleIdentifier",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002109 VisibleString_free,
2110 VisibleString_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002111 VisibleString_compare,
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002112 VisibleIdentifier_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002113 VisibleString_decode_ber,
2114 VisibleString_encode_der,
2115 VisibleString_decode_xer,
2116 VisibleString_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002117 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002118 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002119 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00002120 asn_DEF_VisibleIdentifier_tags_1,
2121 sizeof(asn_DEF_VisibleIdentifier_tags_1)
2122 /sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
2123 asn_DEF_VisibleIdentifier_tags_1, /* Same as above */
2124 sizeof(asn_DEF_VisibleIdentifier_tags_1)
2125 /sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002126 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002127 0, /* No PER visible constraints */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00002128 0, 0, /* No members */
2129 0 /* No specifics */
2130};
Lev Walkin154aa182004-09-26 13:12:56 +00002131
2132
Lev Walkin59b176e2005-11-26 11:25:14 +00002133/*** <<< INCLUDES [Sequence] >>> ***/
2134
Lev Walkin22b5ed42006-09-13 02:51:20 +00002135#include "Int1.h"
2136#include "Int4.h"
Lev Walkin59b176e2005-11-26 11:25:14 +00002137#include <BOOLEAN.h>
2138#include <ENUMERATED.h>
2139#include <NULL.h>
Lev Walkin22b5ed42006-09-13 02:51:20 +00002140#include "Int5.h"
Lev Walkin59b176e2005-11-26 11:25:14 +00002141#include <constr_SEQUENCE.h>
2142
2143/*** <<< DEPS [Sequence] >>> ***/
2144
2145typedef enum enum_c {
2146 enum_c_one = 1,
2147 enum_c_two = 2,
2148 /*
2149 * Enumeration is extensible
2150 */
2151 enum_c_three = 3
Lev Walkin171487e2006-03-21 07:25:18 +00002152} e_enum_c;
Lev Walkin59b176e2005-11-26 11:25:14 +00002153
2154/*** <<< TYPE-DECLS [Sequence] >>> ***/
2155
2156typedef struct Sequence {
2157 Int1_t *int1_c /* DEFAULT 3 */;
2158 Int4_t int4;
2159 Int4_t int4_c;
Lev Walkin2a744a72013-03-27 01:56:23 -07002160 BOOLEAN_t *Bool /* DEFAULT 1 */;
Lev Walkin59b176e2005-11-26 11:25:14 +00002161 ENUMERATED_t enum_c;
2162 NULL_t *null /* OPTIONAL */;
2163 /*
2164 * This type is extensible,
2165 * possible extensions are below.
2166 */
2167 Int5_t *int5_c /* OPTIONAL */;
2168
2169 /* Context for parsing across buffer boundaries */
2170 asn_struct_ctx_t _asn_ctx;
2171} Sequence_t;
2172
2173/*** <<< FUNC-DECLS [Sequence] >>> ***/
2174
2175/* extern asn_TYPE_descriptor_t asn_DEF_enum_c_6; // (Use -fall-defs-global to expose) */
2176extern asn_TYPE_descriptor_t asn_DEF_Sequence;
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002177extern asn_SEQUENCE_specifics_t asn_SPC_Sequence_specs_1;
2178extern asn_TYPE_member_t asn_MBR_Sequence_1[7];
Lev Walkin59b176e2005-11-26 11:25:14 +00002179
2180/*** <<< CODE [Sequence] >>> ***/
2181
Lev Walkin59b176e2005-11-26 11:25:14 +00002182/*
2183 * This type is implemented using ENUMERATED,
2184 * so here we adjust the DEF accordingly.
2185 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002186static int
2187memb_int1_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002188 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002189 const Int1_t *st = (const Int1_t *)sptr;
2190 long value;
2191
2192 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002193 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002194 "%s: value not given (%s:%d)",
2195 td->name, __FILE__, __LINE__);
2196 return -1;
2197 }
2198
2199 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002200 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002201 "%s: value too large (%s:%d)",
2202 td->name, __FILE__, __LINE__);
2203 return -1;
2204 }
2205
2206 if((value >= -2)) {
2207 /* Constraint check succeeded */
2208 return 0;
2209 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002210 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002211 "%s: constraint failed (%s:%d)",
2212 td->name, __FILE__, __LINE__);
2213 return -1;
2214 }
2215}
2216
2217static int
2218memb_int4_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002219 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002220 const Int4_t *st = (const Int4_t *)sptr;
2221 long value;
2222
2223 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002224 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002225 "%s: value not given (%s:%d)",
2226 td->name, __FILE__, __LINE__);
2227 return -1;
2228 }
2229
2230 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002231 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002232 "%s: value too large (%s:%d)",
2233 td->name, __FILE__, __LINE__);
2234 return -1;
2235 }
2236
2237 if((value >= 5 && value <= 7)) {
2238 /* Constraint check succeeded */
2239 return 0;
2240 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002241 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002242 "%s: constraint failed (%s:%d)",
2243 td->name, __FILE__, __LINE__);
2244 return -1;
2245 }
2246}
2247
2248static int
2249memb_int5_c_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002250 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002251 const Int5_t *st = (const Int5_t *)sptr;
2252 long value;
2253
2254 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002255 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002256 "%s: value not given (%s:%d)",
2257 td->name, __FILE__, __LINE__);
2258 return -1;
2259 }
2260
2261 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002262 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002263 "%s: value too large (%s:%d)",
2264 td->name, __FILE__, __LINE__);
2265 return -1;
2266 }
2267
2268 if((value == 5)) {
2269 /* Constraint check succeeded */
2270 return 0;
2271 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002272 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002273 "%s: constraint failed (%s:%d)",
2274 td->name, __FILE__, __LINE__);
2275 return -1;
2276 }
2277}
2278
2279
2280/*** <<< STAT-DEFS [Sequence] >>> ***/
2281
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00002282static int asn_DFL_2_set_3(int set_value, void **sptr) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002283 Int1_t *st = *sptr;
2284
2285 if(!st) {
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00002286 if(!set_value) return -1; /* Not a default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002287 st = (*sptr = CALLOC(1, sizeof(*st)));
2288 if(!st) return -1;
2289 }
2290
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00002291 if(set_value) {
2292 /* Install default value 3 */
2293 return asn_long2INTEGER(st, 3);
2294 } else {
2295 /* Test default value 3 */
2296 long value;
2297 if(asn_INTEGER2long(st, &value))
2298 return -1;
2299 return (value == 3);
2300 }
Lev Walkin59b176e2005-11-26 11:25:14 +00002301}
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00002302static int asn_DFL_5_set_1(int set_value, void **sptr) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002303 BOOLEAN_t *st = *sptr;
2304
2305 if(!st) {
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00002306 if(!set_value) return -1; /* Not a default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002307 st = (*sptr = CALLOC(1, sizeof(*st)));
2308 if(!st) return -1;
2309 }
2310
Lev Walkin9f5bb3a2006-08-18 01:46:46 +00002311 if(set_value) {
2312 /* Install default value 1 */
2313 *st = 1;
2314 return 0;
2315 } else {
2316 /* Test default value 1 */
2317 return (*st == 1);
2318 }
Lev Walkin59b176e2005-11-26 11:25:14 +00002319}
Lev Walkina7591b52014-10-12 18:37:35 -07002320static const asn_INTEGER_enum_map_t asn_MAP_enum_c_value2enum_6[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002321 { 1, 3, "one" },
2322 { 2, 3, "two" },
2323 { 3, 5, "three" }
2324 /* This list is extensible */
2325};
Lev Walkina7591b52014-10-12 18:37:35 -07002326static const unsigned int asn_MAP_enum_c_enum2value_6[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002327 0, /* one(1) */
2328 2, /* three(3) */
2329 1 /* two(2) */
2330 /* This list is extensible */
2331};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002332static const asn_INTEGER_specifics_t asn_SPC_enum_c_specs_6 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002333 asn_MAP_enum_c_value2enum_6, /* "tag" => N; sorted by tag */
2334 asn_MAP_enum_c_enum2value_6, /* N => "tag"; sorted by N */
2335 3, /* Number of elements in the maps */
2336 3, /* Extensions before this member */
Lev Walkin8bb57a22007-12-03 13:41:36 +00002337 1, /* Strict enumeration */
2338 0, /* Native long size */
2339 0
Lev Walkin59b176e2005-11-26 11:25:14 +00002340};
Lev Walkina7591b52014-10-12 18:37:35 -07002341static const ber_tlv_tag_t asn_DEF_enum_c_tags_6[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002342 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
2343};
2344static /* Use -fall-defs-global to expose */
2345asn_TYPE_descriptor_t asn_DEF_enum_c_6 = {
2346 "enum-c",
2347 "enum-c",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002348 ENUMERATED_free,
2349 ENUMERATED_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002350 ENUMERATED_compare,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002351 ENUMERATED_constraint,
2352 ENUMERATED_decode_ber,
2353 ENUMERATED_encode_der,
2354 ENUMERATED_decode_xer,
2355 ENUMERATED_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002356 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002357 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin59b176e2005-11-26 11:25:14 +00002358 0, /* Use generic outmost tag fetcher */
2359 asn_DEF_enum_c_tags_6,
2360 sizeof(asn_DEF_enum_c_tags_6)
2361 /sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
2362 asn_DEF_enum_c_tags_6, /* Same as above */
2363 sizeof(asn_DEF_enum_c_tags_6)
2364 /sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002365 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002366 0, /* No PER visible constraints */
2367 0, 0, /* Defined elsewhere */
2368 &asn_SPC_enum_c_specs_6 /* Additional specs */
2369};
2370
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002371asn_TYPE_member_t asn_MBR_Sequence_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002372 { ATF_POINTER, 1, offsetof(struct Sequence, int1_c),
2373 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
2374 .tag_mode = 0,
2375 .type = &asn_DEF_Int1,
Lev Walkin67a30122017-08-10 05:48:54 -07002376 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002377 .memb_constraints = memb_int1_c_constraint_1,
Lev Walkinb33425f2017-07-14 14:59:52 +04002378 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002379 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2380 .default_value = asn_DFL_2_set_3, /* DEFAULT 3 */
2381 .name = "int1-c"
2382 },
2383 { ATF_NOFLAGS, 0, offsetof(struct Sequence, int4),
2384 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
2385 .tag_mode = +1, /* EXPLICIT tag at current level */
2386 .type = &asn_DEF_Int4,
Lev Walkin67a30122017-08-10 05:48:54 -07002387 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002388 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +04002389 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002390 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2391 .default_value = 0,
2392 .name = "int4"
2393 },
2394 { ATF_NOFLAGS, 0, offsetof(struct Sequence, int4_c),
2395 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
2396 .tag_mode = 0,
2397 .type = &asn_DEF_Int4,
Lev Walkin67a30122017-08-10 05:48:54 -07002398 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002399 .memb_constraints = memb_int4_c_constraint_1,
Lev Walkinb33425f2017-07-14 14:59:52 +04002400 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002401 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2402 .default_value = 0,
2403 .name = "int4-c"
2404 },
Lev Walkin2a744a72013-03-27 01:56:23 -07002405 { ATF_POINTER, 1, offsetof(struct Sequence, Bool),
Lev Walkin59b176e2005-11-26 11:25:14 +00002406 .tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
2407 .tag_mode = 0,
2408 .type = &asn_DEF_BOOLEAN,
Lev Walkin67a30122017-08-10 05:48:54 -07002409 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002410 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +04002411 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002412 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2413 .default_value = asn_DFL_5_set_1, /* DEFAULT 1 */
2414 .name = "bool"
2415 },
2416 { ATF_NOFLAGS, 0, offsetof(struct Sequence, enum_c),
2417 .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
2418 .tag_mode = 0,
2419 .type = &asn_DEF_enum_c_6,
Lev Walkin67a30122017-08-10 05:48:54 -07002420 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002421 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +04002422 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002423 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2424 .default_value = 0,
2425 .name = "enum-c"
2426 },
2427 { ATF_POINTER, 2, offsetof(struct Sequence, null),
2428 .tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
2429 .tag_mode = 0,
2430 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -07002431 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002432 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +04002433 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002434 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2435 .default_value = 0,
2436 .name = "null"
2437 },
2438 { ATF_POINTER, 1, offsetof(struct Sequence, int5_c),
2439 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
2440 .tag_mode = 0,
2441 .type = &asn_DEF_Int5,
Lev Walkin67a30122017-08-10 05:48:54 -07002442 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002443 .memb_constraints = memb_int5_c_constraint_1,
Lev Walkinb33425f2017-07-14 14:59:52 +04002444 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002445 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2446 .default_value = 0,
2447 .name = "int5-c"
2448 },
2449};
Lev Walkina7591b52014-10-12 18:37:35 -07002450static const ber_tlv_tag_t asn_DEF_Sequence_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002451 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
2452};
Lev Walkina7591b52014-10-12 18:37:35 -07002453static const asn_TYPE_tag2member_t asn_MAP_Sequence_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -07002454 { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 3, 0, 0 }, /* bool */
2455 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* int1-c */
2456 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* int4-c */
2457 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* int5-c */
2458 { (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)), 5, 0, 0 }, /* null */
2459 { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* enum-c */
2460 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 } /* int4 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002461};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002462asn_SEQUENCE_specifics_t asn_SPC_Sequence_specs_1 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002463 sizeof(struct Sequence),
2464 offsetof(struct Sequence, _asn_ctx),
2465 asn_MAP_Sequence_tag2el_1,
2466 7, /* Count of tags in the map */
2467 0, 0, 0, /* Optional elements (not needed) */
2468 5, /* Start extensions */
2469 8 /* Stop extensions */
2470};
2471asn_TYPE_descriptor_t asn_DEF_Sequence = {
2472 "Sequence",
2473 "Sequence",
2474 SEQUENCE_free,
2475 SEQUENCE_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002476 SEQUENCE_compare,
Lev Walkin59b176e2005-11-26 11:25:14 +00002477 SEQUENCE_constraint,
2478 SEQUENCE_decode_ber,
2479 SEQUENCE_encode_der,
2480 SEQUENCE_decode_xer,
2481 SEQUENCE_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002482 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002483 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin59b176e2005-11-26 11:25:14 +00002484 0, /* Use generic outmost tag fetcher */
2485 asn_DEF_Sequence_tags_1,
2486 sizeof(asn_DEF_Sequence_tags_1)
2487 /sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
2488 asn_DEF_Sequence_tags_1, /* Same as above */
2489 sizeof(asn_DEF_Sequence_tags_1)
2490 /sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002491 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002492 0, /* No PER visible constraints */
2493 asn_MBR_Sequence_1,
2494 7, /* Elements count */
2495 &asn_SPC_Sequence_specs_1 /* Additional specs */
2496};
2497
2498
2499/*** <<< INCLUDES [SequenceOf] >>> ***/
2500
2501#include <asn_SEQUENCE_OF.h>
2502#include <constr_SEQUENCE_OF.h>
2503
2504/*** <<< FWD-DECLS [SequenceOf] >>> ***/
2505
2506struct Sequence;
2507
2508/*** <<< TYPE-DECLS [SequenceOf] >>> ***/
2509
2510typedef struct SequenceOf {
2511 A_SEQUENCE_OF(struct Sequence) list;
2512
2513 /* Context for parsing across buffer boundaries */
2514 asn_struct_ctx_t _asn_ctx;
2515} SequenceOf_t;
2516
2517/*** <<< FUNC-DECLS [SequenceOf] >>> ***/
2518
2519extern asn_TYPE_descriptor_t asn_DEF_SequenceOf;
2520
2521/*** <<< POST-INCLUDE [SequenceOf] >>> ***/
2522
Lev Walkin22b5ed42006-09-13 02:51:20 +00002523#include "Sequence.h"
Lev Walkin59b176e2005-11-26 11:25:14 +00002524
2525/*** <<< STAT-DEFS [SequenceOf] >>> ***/
2526
2527static asn_TYPE_member_t asn_MBR_SequenceOf_1[] = {
2528 { ATF_POINTER, 0, 0,
2529 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
2530 .tag_mode = 0,
2531 .type = &asn_DEF_Sequence,
Lev Walkin67a30122017-08-10 05:48:54 -07002532 .type_selector = 0,
Lev Walkin59b176e2005-11-26 11:25:14 +00002533 .memb_constraints = 0, /* Defer constraints checking to the member type */
Lev Walkinb33425f2017-07-14 14:59:52 +04002534 .oer_constraints = 0, /* OER is not compiled, use -gen-OER */
Lev Walkin59b176e2005-11-26 11:25:14 +00002535 .per_constraints = 0, /* PER is not compiled, use -gen-PER */
2536 .default_value = 0,
2537 .name = ""
2538 },
2539};
Lev Walkina7591b52014-10-12 18:37:35 -07002540static const ber_tlv_tag_t asn_DEF_SequenceOf_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002541 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
2542};
2543static asn_SET_OF_specifics_t asn_SPC_SequenceOf_specs_1 = {
2544 sizeof(struct SequenceOf),
2545 offsetof(struct SequenceOf, _asn_ctx),
2546 0, /* XER encoding is XMLDelimitedItemList */
2547};
2548asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
2549 "SequenceOf",
2550 "SequenceOf",
2551 SEQUENCE_OF_free,
2552 SEQUENCE_OF_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002553 SEQUENCE_OF_compare,
Lev Walkin59b176e2005-11-26 11:25:14 +00002554 SEQUENCE_OF_constraint,
2555 SEQUENCE_OF_decode_ber,
2556 SEQUENCE_OF_encode_der,
2557 SEQUENCE_OF_decode_xer,
2558 SEQUENCE_OF_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002559 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002560 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin59b176e2005-11-26 11:25:14 +00002561 0, /* Use generic outmost tag fetcher */
2562 asn_DEF_SequenceOf_tags_1,
2563 sizeof(asn_DEF_SequenceOf_tags_1)
2564 /sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
2565 asn_DEF_SequenceOf_tags_1, /* Same as above */
2566 sizeof(asn_DEF_SequenceOf_tags_1)
2567 /sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002568 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002569 0, /* No PER visible constraints */
2570 asn_MBR_SequenceOf_1,
2571 1, /* Single element */
2572 &asn_SPC_SequenceOf_specs_1 /* Additional specs */
2573};
2574
2575
2576/*** <<< INCLUDES [Enum0] >>> ***/
2577
2578#include <ENUMERATED.h>
2579
2580/*** <<< DEPS [Enum0] >>> ***/
2581
2582typedef enum Enum0 {
2583 Enum0_one = 0,
2584 Enum0_two = 1
Lev Walkin171487e2006-03-21 07:25:18 +00002585} e_Enum0;
Lev Walkin59b176e2005-11-26 11:25:14 +00002586
2587/*** <<< TYPE-DECLS [Enum0] >>> ***/
2588
2589typedef ENUMERATED_t Enum0_t;
2590
2591/*** <<< FUNC-DECLS [Enum0] >>> ***/
2592
2593extern asn_TYPE_descriptor_t asn_DEF_Enum0;
2594asn_struct_free_f Enum0_free;
2595asn_struct_print_f Enum0_print;
2596asn_constr_check_f Enum0_constraint;
2597ber_type_decoder_f Enum0_decode_ber;
2598der_type_encoder_f Enum0_encode_der;
2599xer_type_decoder_f Enum0_decode_xer;
2600xer_type_encoder_f Enum0_encode_xer;
2601
2602/*** <<< CODE [Enum0] >>> ***/
2603
Lev Walkin59b176e2005-11-26 11:25:14 +00002604/*
2605 * This type is implemented using ENUMERATED,
2606 * so here we adjust the DEF accordingly.
2607 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002608
2609/*** <<< STAT-DEFS [Enum0] >>> ***/
2610
Lev Walkina7591b52014-10-12 18:37:35 -07002611static const asn_INTEGER_enum_map_t asn_MAP_Enum0_value2enum_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002612 { 0, 3, "one" },
2613 { 1, 3, "two" }
2614};
Lev Walkina7591b52014-10-12 18:37:35 -07002615static const unsigned int asn_MAP_Enum0_enum2value_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002616 0, /* one(0) */
2617 1 /* two(1) */
2618};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002619static const asn_INTEGER_specifics_t asn_SPC_Enum0_specs_1 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002620 asn_MAP_Enum0_value2enum_1, /* "tag" => N; sorted by tag */
2621 asn_MAP_Enum0_enum2value_1, /* N => "tag"; sorted by N */
2622 2, /* Number of elements in the maps */
2623 0, /* Enumeration is not extensible */
Lev Walkin8bb57a22007-12-03 13:41:36 +00002624 1, /* Strict enumeration */
2625 0, /* Native long size */
2626 0
Lev Walkin59b176e2005-11-26 11:25:14 +00002627};
Lev Walkina7591b52014-10-12 18:37:35 -07002628static const ber_tlv_tag_t asn_DEF_Enum0_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002629 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
2630};
2631asn_TYPE_descriptor_t asn_DEF_Enum0 = {
2632 "Enum0",
2633 "Enum0",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002634 ENUMERATED_free,
2635 ENUMERATED_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002636 ENUMERATED_compare,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002637 ENUMERATED_constraint,
2638 ENUMERATED_decode_ber,
2639 ENUMERATED_encode_der,
2640 ENUMERATED_decode_xer,
2641 ENUMERATED_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002642 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002643 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin59b176e2005-11-26 11:25:14 +00002644 0, /* Use generic outmost tag fetcher */
2645 asn_DEF_Enum0_tags_1,
2646 sizeof(asn_DEF_Enum0_tags_1)
2647 /sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
2648 asn_DEF_Enum0_tags_1, /* Same as above */
2649 sizeof(asn_DEF_Enum0_tags_1)
2650 /sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002651 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002652 0, /* No PER visible constraints */
2653 0, 0, /* Defined elsewhere */
2654 &asn_SPC_Enum0_specs_1 /* Additional specs */
2655};
2656
2657
2658/*** <<< INCLUDES [Enum1] >>> ***/
2659
2660#include <NativeEnumerated.h>
2661
2662/*** <<< DEPS [Enum1] >>> ***/
2663
2664typedef enum Enum1 {
2665 Enum1_one = 0,
2666 Enum1_two = 1
Lev Walkin171487e2006-03-21 07:25:18 +00002667} e_Enum1;
Lev Walkin59b176e2005-11-26 11:25:14 +00002668
2669/*** <<< TYPE-DECLS [Enum1] >>> ***/
2670
2671typedef long Enum1_t;
2672
2673/*** <<< FUNC-DECLS [Enum1] >>> ***/
2674
2675extern asn_TYPE_descriptor_t asn_DEF_Enum1;
2676asn_struct_free_f Enum1_free;
2677asn_struct_print_f Enum1_print;
2678asn_constr_check_f Enum1_constraint;
2679ber_type_decoder_f Enum1_decode_ber;
2680der_type_encoder_f Enum1_encode_der;
2681xer_type_decoder_f Enum1_decode_xer;
2682xer_type_encoder_f Enum1_encode_xer;
2683
2684/*** <<< CODE [Enum1] >>> ***/
2685
2686int
2687Enum1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002688 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002689 long value;
2690
2691 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002692 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002693 "%s: value not given (%s:%d)",
2694 td->name, __FILE__, __LINE__);
2695 return -1;
2696 }
2697
2698 value = *(const long *)sptr;
2699
2700 if((value == 0)) {
2701 /* Constraint check succeeded */
2702 return 0;
2703 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002704 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002705 "%s: constraint failed (%s:%d)",
2706 td->name, __FILE__, __LINE__);
2707 return -1;
2708 }
2709}
2710
2711/*
2712 * This type is implemented using NativeEnumerated,
2713 * so here we adjust the DEF accordingly.
2714 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002715
2716/*** <<< STAT-DEFS [Enum1] >>> ***/
2717
Lev Walkina7591b52014-10-12 18:37:35 -07002718static const asn_INTEGER_enum_map_t asn_MAP_Enum1_value2enum_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002719 { 0, 3, "one" },
2720 { 1, 3, "two" }
2721};
Lev Walkina7591b52014-10-12 18:37:35 -07002722static const unsigned int asn_MAP_Enum1_enum2value_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002723 0, /* one(0) */
2724 1 /* two(1) */
2725};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002726static const asn_INTEGER_specifics_t asn_SPC_Enum1_specs_1 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002727 asn_MAP_Enum1_value2enum_1, /* "tag" => N; sorted by tag */
2728 asn_MAP_Enum1_enum2value_1, /* N => "tag"; sorted by N */
2729 2, /* Number of elements in the maps */
2730 0, /* Enumeration is not extensible */
Lev Walkin8bb57a22007-12-03 13:41:36 +00002731 1, /* Strict enumeration */
2732 0, /* Native long size */
2733 0
Lev Walkin59b176e2005-11-26 11:25:14 +00002734};
Lev Walkina7591b52014-10-12 18:37:35 -07002735static const ber_tlv_tag_t asn_DEF_Enum1_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002736 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
2737};
2738asn_TYPE_descriptor_t asn_DEF_Enum1 = {
2739 "Enum1",
2740 "Enum1",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002741 NativeEnumerated_free,
2742 NativeEnumerated_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002743 NativeEnumerated_compare,
Lev Walkin59b176e2005-11-26 11:25:14 +00002744 Enum1_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002745 NativeEnumerated_decode_ber,
2746 NativeEnumerated_encode_der,
2747 NativeEnumerated_decode_xer,
2748 NativeEnumerated_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002749 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002750 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkin59b176e2005-11-26 11:25:14 +00002751 0, /* Use generic outmost tag fetcher */
2752 asn_DEF_Enum1_tags_1,
2753 sizeof(asn_DEF_Enum1_tags_1)
2754 /sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
2755 asn_DEF_Enum1_tags_1, /* Same as above */
2756 sizeof(asn_DEF_Enum1_tags_1)
2757 /sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002758 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002759 0, /* No PER visible constraints */
2760 0, 0, /* Defined elsewhere */
2761 &asn_SPC_Enum1_specs_1 /* Additional specs */
2762};
2763
2764
Lev Walkin154aa182004-09-26 13:12:56 +00002765/*** <<< INCLUDES [Identifier] >>> ***/
2766
2767#include <VisibleString.h>
2768
2769/*** <<< TYPE-DECLS [Identifier] >>> ***/
2770
Lev Walkin154aa182004-09-26 13:12:56 +00002771typedef VisibleString_t Identifier_t;
2772
2773/*** <<< FUNC-DECLS [Identifier] >>> ***/
2774
Lev Walkindfae9752004-09-29 13:19:37 +00002775extern asn_TYPE_descriptor_t asn_DEF_Identifier;
Lev Walkin154aa182004-09-26 13:12:56 +00002776asn_struct_free_f Identifier_free;
2777asn_struct_print_f Identifier_print;
2778asn_constr_check_f Identifier_constraint;
2779ber_type_decoder_f Identifier_decode_ber;
2780der_type_encoder_f Identifier_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00002781xer_type_decoder_f Identifier_decode_xer;
Lev Walkin154aa182004-09-26 13:12:56 +00002782xer_type_encoder_f Identifier_encode_xer;
2783
2784/*** <<< CTABLES [Identifier] >>> ***/
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002785
Lev Walkina7591b52014-10-12 18:37:35 -07002786static const int permitted_alphabet_table_1[256] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +00002787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
2789 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
2790 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
2791 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
279227,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
2793 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
279454,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002795};
2796
Lev Walkine8318b82005-03-06 09:29:03 +00002797static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -07002798 const int *table = permitted_alphabet_table_1;
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002799 /* The underlying type is VisibleString */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00002800 const VisibleString_t *st = (const VisibleString_t *)sptr;
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002801 const uint8_t *ch = st->buf;
2802 const uint8_t *end = ch + st->size;
2803
2804 for(; ch < end; ch++) {
2805 uint8_t cv = *ch;
2806 if(!table[cv]) return -1;
2807 }
2808 return 0;
2809}
2810
2811
Lev Walkin154aa182004-09-26 13:12:56 +00002812/*** <<< CODE [Identifier] >>> ***/
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002813
2814int
Lev Walkindfae9752004-09-29 13:19:37 +00002815Identifier_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002816 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00002817 const VisibleString_t *st = (const VisibleString_t *)sptr;
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002818 size_t size;
2819
2820 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002821 ASN__CTFAIL(app_key, td, sptr,
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002822 "%s: value not given (%s:%d)",
2823 td->name, __FILE__, __LINE__);
2824 return -1;
2825 }
2826
2827 size = st->size;
2828
2829 if((size >= 1 && size <= 32)
Lev Walkine8318b82005-03-06 09:29:03 +00002830 && !check_permitted_alphabet_1(st)) {
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002831 /* Constraint check succeeded */
2832 return 0;
2833 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002834 ASN__CTFAIL(app_key, td, sptr,
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002835 "%s: constraint failed (%s:%d)",
2836 td->name, __FILE__, __LINE__);
2837 return -1;
2838 }
2839}
2840
2841/*
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002842 * This type is implemented using VisibleString,
Lev Walkinc3808c12004-09-23 22:14:58 +00002843 * so here we adjust the DEF accordingly.
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002844 */
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002845
2846/*** <<< STAT-DEFS [Identifier] >>> ***/
2847
Lev Walkina7591b52014-10-12 18:37:35 -07002848static const ber_tlv_tag_t asn_DEF_Identifier_tags_1[] = {
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002849 (ASN_TAG_CLASS_UNIVERSAL | (26 << 2))
2850};
Lev Walkindfae9752004-09-29 13:19:37 +00002851asn_TYPE_descriptor_t asn_DEF_Identifier = {
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002852 "Identifier",
Lev Walkindc06f6b2004-10-20 15:50:55 +00002853 "Identifier",
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002854 VisibleString_free,
2855 VisibleString_print,
Lev Walkincd2f48e2017-08-10 02:14:59 -07002856 VisibleString_compare,
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002857 Identifier_constraint,
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002858 VisibleString_decode_ber,
2859 VisibleString_encode_der,
2860 VisibleString_decode_xer,
2861 VisibleString_encode_xer,
Lev Walkinba68c912017-07-06 07:52:39 -07002862 0, 0, /* No OER support, use "-gen-OER" to enable */
Lev Walkinb33425f2017-07-14 14:59:52 +04002863 0, 0, /* No PER support, use "-gen-PER" to enable */
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002864 0, /* Use generic outmost tag fetcher */
Lev Walkin59b176e2005-11-26 11:25:14 +00002865 asn_DEF_Identifier_tags_1,
2866 sizeof(asn_DEF_Identifier_tags_1)
2867 /sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */
2868 asn_DEF_Identifier_tags_1, /* Same as above */
2869 sizeof(asn_DEF_Identifier_tags_1)
2870 /sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */
Lev Walkinb33425f2017-07-14 14:59:52 +04002871 0, /* No OER visible constraints */
Lev Walkin59b176e2005-11-26 11:25:14 +00002872 0, /* No PER visible constraints */
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002873 0, 0, /* No members */
2874 0 /* No specifics */
2875};
2876