blob: d911711c2de49dd5afd50bde03401bb45224ea0b [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, Chiu1f87ac02017-08-20 01:25:45 +080036 &asn_OP_INTEGER,
Lev Walkin59b176e2005-11-26 11:25:14 +000037 asn_DEF_Int1_tags_1,
38 sizeof(asn_DEF_Int1_tags_1)
39 /sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
40 asn_DEF_Int1_tags_1, /* Same as above */
41 sizeof(asn_DEF_Int1_tags_1)
42 /sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -070043 { 0, 0, INTEGER_constraint },
Lev Walkincaf0d5a2005-03-04 23:48:19 +000044 0, 0, /* No members */
45 0 /* No specifics */
46};
Lev Walkin006de1c2004-08-20 13:37:45 +000047
48
49/*** <<< INCLUDES [Int2] >>> ***/
50
Lev Walkin22b5ed42006-09-13 02:51:20 +000051#include "Int1.h"
Lev Walkin006de1c2004-08-20 13:37:45 +000052
53/*** <<< TYPE-DECLS [Int2] >>> ***/
54
Lev Walkin006de1c2004-08-20 13:37:45 +000055typedef Int1_t Int2_t;
56
Lev Walkin006de1c2004-08-20 13:37:45 +000057/*** <<< FUNC-DECLS [Int2] >>> ***/
58
Lev Walkindfae9752004-09-29 13:19:37 +000059extern asn_TYPE_descriptor_t asn_DEF_Int2;
Lev Walkina9cc46e2004-09-22 16:06:28 +000060asn_struct_free_f Int2_free;
61asn_struct_print_f Int2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +000062asn_constr_check_f Int2_constraint;
63ber_type_decoder_f Int2_decode_ber;
64der_type_encoder_f Int2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +000065xer_type_decoder_f Int2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +000066xer_type_encoder_f Int2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +000067
68/*** <<< CODE [Int2] >>> ***/
69
70int
Lev Walkin20696a42017-10-17 21:27:33 -070071Int2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +000072 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +000073 const Int1_t *st = (const Int1_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +000074 long value;
75
76 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -070077 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +000078 "%s: value not given (%s:%d)",
79 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +000080 return -1;
81 }
82
Lev Walkin44467432004-09-07 06:43:57 +000083 /* Check if the sign bit is present */
84 value = st->buf ? ((st->buf[0] & 0x80) ? -1 : 1) : 0;
Lev Walkin006de1c2004-08-20 13:37:45 +000085
86 if((value >= 0)) {
87 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +000088 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +000089 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -070090 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +000091 "%s: constraint failed (%s:%d)",
92 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +000093 return -1;
94 }
95}
96
97/*
98 * This type is implemented using Int1,
Lev Walkinc3808c12004-09-23 22:14:58 +000099 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000100 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000101
102/*** <<< STAT-DEFS [Int2] >>> ***/
103
Lev Walkina7591b52014-10-12 18:37:35 -0700104static const ber_tlv_tag_t asn_DEF_Int2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000105 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000106};
Lev Walkindfae9752004-09-29 13:19:37 +0000107asn_TYPE_descriptor_t asn_DEF_Int2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000108 "Int2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000109 "Int2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800110 &asn_OP_INTEGER,
Lev Walkin59b176e2005-11-26 11:25:14 +0000111 asn_DEF_Int2_tags_1,
112 sizeof(asn_DEF_Int2_tags_1)
113 /sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
114 asn_DEF_Int2_tags_1, /* Same as above */
115 sizeof(asn_DEF_Int2_tags_1)
116 /sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700117 { 0, 0, Int2_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000118 0, 0, /* No members */
119 0 /* No specifics */
120};
121
122
123/*** <<< INCLUDES [Int3] >>> ***/
124
Lev Walkin22b5ed42006-09-13 02:51:20 +0000125#include "Int2.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000126
127/*** <<< TYPE-DECLS [Int3] >>> ***/
128
Lev Walkin006de1c2004-08-20 13:37:45 +0000129typedef Int2_t Int3_t;
130
Lev Walkin006de1c2004-08-20 13:37:45 +0000131/*** <<< FUNC-DECLS [Int3] >>> ***/
132
Lev Walkindfae9752004-09-29 13:19:37 +0000133extern asn_TYPE_descriptor_t asn_DEF_Int3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000134asn_struct_free_f Int3_free;
135asn_struct_print_f Int3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000136asn_constr_check_f Int3_constraint;
137ber_type_decoder_f Int3_decode_ber;
138der_type_encoder_f Int3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000139xer_type_decoder_f Int3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000140xer_type_encoder_f Int3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000141
142/*** <<< CODE [Int3] >>> ***/
143
144int
Lev Walkin20696a42017-10-17 21:27:33 -0700145Int3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000146 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000147 const Int2_t *st = (const Int2_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000148 long value;
149
150 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700151 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000152 "%s: value not given (%s:%d)",
153 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000154 return -1;
155 }
156
Lev Walkindfae9752004-09-29 13:19:37 +0000157 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700158 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000159 "%s: value too large (%s:%d)",
160 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000161 return -1;
162 }
163
164 if((value >= 0 && value <= 10)) {
165 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000166 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000167 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700168 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000169 "%s: constraint failed (%s:%d)",
170 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000171 return -1;
172 }
173}
174
175/*
176 * This type is implemented using Int2,
Lev Walkinc3808c12004-09-23 22:14:58 +0000177 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000178 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000179
180/*** <<< STAT-DEFS [Int3] >>> ***/
181
Lev Walkina7591b52014-10-12 18:37:35 -0700182static const ber_tlv_tag_t asn_DEF_Int3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000183 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000184};
Lev Walkindfae9752004-09-29 13:19:37 +0000185asn_TYPE_descriptor_t asn_DEF_Int3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000186 "Int3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000187 "Int3",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800188 &asn_OP_INTEGER,
Lev Walkin59b176e2005-11-26 11:25:14 +0000189 asn_DEF_Int3_tags_1,
190 sizeof(asn_DEF_Int3_tags_1)
191 /sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
192 asn_DEF_Int3_tags_1, /* Same as above */
193 sizeof(asn_DEF_Int3_tags_1)
194 /sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700195 { 0, 0, Int3_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000196 0, 0, /* No members */
197 0 /* No specifics */
198};
199
200
201/*** <<< INCLUDES [Int4] >>> ***/
202
Lev Walkin22b5ed42006-09-13 02:51:20 +0000203#include "Int3.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000204
205/*** <<< TYPE-DECLS [Int4] >>> ***/
206
Lev Walkin006de1c2004-08-20 13:37:45 +0000207typedef Int3_t Int4_t;
208
Lev Walkin006de1c2004-08-20 13:37:45 +0000209/*** <<< FUNC-DECLS [Int4] >>> ***/
210
Lev Walkindfae9752004-09-29 13:19:37 +0000211extern asn_TYPE_descriptor_t asn_DEF_Int4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000212asn_struct_free_f Int4_free;
213asn_struct_print_f Int4_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000214asn_constr_check_f Int4_constraint;
215ber_type_decoder_f Int4_decode_ber;
216der_type_encoder_f Int4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000217xer_type_decoder_f Int4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000218xer_type_encoder_f Int4_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000219
220/*** <<< CODE [Int4] >>> ***/
221
222int
Lev Walkin20696a42017-10-17 21:27:33 -0700223Int4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000224 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000225 const Int3_t *st = (const Int3_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +0000226 long value;
Lev Walkin006de1c2004-08-20 13:37:45 +0000227
228 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700229 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000230 "%s: value not given (%s:%d)",
231 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000232 return -1;
233 }
234
Lev Walkindfae9752004-09-29 13:19:37 +0000235 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700236 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000237 "%s: value too large (%s:%d)",
238 td->name, __FILE__, __LINE__);
239 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000240 }
241
Lev Walkind35c8b52004-08-25 02:08:08 +0000242 if((value >= 1 && value <= 10)) {
243 /* Constraint check succeeded */
244 return 0;
245 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700246 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000247 "%s: constraint failed (%s:%d)",
248 td->name, __FILE__, __LINE__);
249 return -1;
250 }
Lev Walkin006de1c2004-08-20 13:37:45 +0000251}
252
253/*
254 * This type is implemented using Int3,
Lev Walkinc3808c12004-09-23 22:14:58 +0000255 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000256 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000257
258/*** <<< STAT-DEFS [Int4] >>> ***/
259
Lev Walkina7591b52014-10-12 18:37:35 -0700260static const ber_tlv_tag_t asn_DEF_Int4_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000261 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000262};
Lev Walkindfae9752004-09-29 13:19:37 +0000263asn_TYPE_descriptor_t asn_DEF_Int4 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000264 "Int4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000265 "Int4",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800266 &asn_OP_INTEGER,
Lev Walkin59b176e2005-11-26 11:25:14 +0000267 asn_DEF_Int4_tags_1,
268 sizeof(asn_DEF_Int4_tags_1)
269 /sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
270 asn_DEF_Int4_tags_1, /* Same as above */
271 sizeof(asn_DEF_Int4_tags_1)
272 /sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700273 { 0, 0, Int4_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000274 0, 0, /* No members */
275 0 /* No specifics */
276};
277
278
279/*** <<< INCLUDES [Int5] >>> ***/
280
Lev Walkin22b5ed42006-09-13 02:51:20 +0000281#include "Int4.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000282
283/*** <<< TYPE-DECLS [Int5] >>> ***/
284
Lev Walkin006de1c2004-08-20 13:37:45 +0000285typedef Int4_t Int5_t;
286
Lev Walkin006de1c2004-08-20 13:37:45 +0000287/*** <<< FUNC-DECLS [Int5] >>> ***/
288
Lev Walkindfae9752004-09-29 13:19:37 +0000289extern asn_TYPE_descriptor_t asn_DEF_Int5;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000290asn_struct_free_f Int5_free;
291asn_struct_print_f Int5_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000292asn_constr_check_f Int5_constraint;
293ber_type_decoder_f Int5_decode_ber;
294der_type_encoder_f Int5_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000295xer_type_decoder_f Int5_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000296xer_type_encoder_f Int5_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000297
298/*** <<< CODE [Int5] >>> ***/
299
300int
Lev Walkin20696a42017-10-17 21:27:33 -0700301Int5_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000302 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000303 const Int4_t *st = (const Int4_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000304 long value;
305
306 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700307 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000308 "%s: value not given (%s:%d)",
309 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000310 return -1;
311 }
312
Lev Walkindfae9752004-09-29 13:19:37 +0000313 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700314 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000315 "%s: value too large (%s:%d)",
316 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000317 return -1;
318 }
319
320 if((value == 5)) {
321 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000322 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000323 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700324 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000325 "%s: constraint failed (%s:%d)",
326 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000327 return -1;
328 }
329}
330
331/*
332 * This type is implemented using Int4,
Lev Walkinc3808c12004-09-23 22:14:58 +0000333 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000334 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000335
336/*** <<< STAT-DEFS [Int5] >>> ***/
337
Lev Walkina7591b52014-10-12 18:37:35 -0700338static const ber_tlv_tag_t asn_DEF_Int5_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000339 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000340};
Lev Walkindfae9752004-09-29 13:19:37 +0000341asn_TYPE_descriptor_t asn_DEF_Int5 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000342 "Int5",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000343 "Int5",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800344 &asn_OP_INTEGER,
Lev Walkin59b176e2005-11-26 11:25:14 +0000345 asn_DEF_Int5_tags_1,
346 sizeof(asn_DEF_Int5_tags_1)
347 /sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
348 asn_DEF_Int5_tags_1, /* Same as above */
349 sizeof(asn_DEF_Int5_tags_1)
350 /sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700351 { 0, 0, Int5_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000352 0, 0, /* No members */
353 0 /* No specifics */
354};
355
356
357/*** <<< INCLUDES [ExtensibleExtensions] >>> ***/
358
359#include <INTEGER.h>
360
361/*** <<< TYPE-DECLS [ExtensibleExtensions] >>> ***/
362
Lev Walkin006de1c2004-08-20 13:37:45 +0000363typedef INTEGER_t ExtensibleExtensions_t;
364
Lev Walkin006de1c2004-08-20 13:37:45 +0000365/*** <<< FUNC-DECLS [ExtensibleExtensions] >>> ***/
366
Lev Walkindfae9752004-09-29 13:19:37 +0000367extern asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000368asn_struct_free_f ExtensibleExtensions_free;
369asn_struct_print_f ExtensibleExtensions_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000370asn_constr_check_f ExtensibleExtensions_constraint;
371ber_type_decoder_f ExtensibleExtensions_decode_ber;
372der_type_encoder_f ExtensibleExtensions_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000373xer_type_decoder_f ExtensibleExtensions_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000374xer_type_encoder_f ExtensibleExtensions_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000375
376/*** <<< CODE [ExtensibleExtensions] >>> ***/
377
378int
Lev Walkin20696a42017-10-17 21:27:33 -0700379ExtensibleExtensions_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000380 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000381 const INTEGER_t *st = (const INTEGER_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +0000382 long value;
Lev Walkin006de1c2004-08-20 13:37:45 +0000383
384 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700385 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000386 "%s: value not given (%s:%d)",
387 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000388 return -1;
389 }
390
Lev Walkindfae9752004-09-29 13:19:37 +0000391 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700392 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000393 "%s: value too large (%s:%d)",
394 td->name, __FILE__, __LINE__);
395 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000396 }
397
Lev Walkin0c686452017-09-07 22:59:36 -0700398 if((value >= 1 && value <= 255)) {
Lev Walkind35c8b52004-08-25 02:08:08 +0000399 /* Constraint check succeeded */
400 return 0;
401 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700402 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +0000403 "%s: constraint failed (%s:%d)",
404 td->name, __FILE__, __LINE__);
405 return -1;
406 }
Lev Walkin006de1c2004-08-20 13:37:45 +0000407}
408
409/*
410 * This type is implemented using INTEGER,
Lev Walkinc3808c12004-09-23 22:14:58 +0000411 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000412 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000413
414/*** <<< STAT-DEFS [ExtensibleExtensions] >>> ***/
415
Lev Walkina7591b52014-10-12 18:37:35 -0700416static const ber_tlv_tag_t asn_DEF_ExtensibleExtensions_tags_1[] = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000417 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
418};
Lev Walkindfae9752004-09-29 13:19:37 +0000419asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000420 "ExtensibleExtensions",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000421 "ExtensibleExtensions",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800422 &asn_OP_INTEGER,
Lev Walkin59b176e2005-11-26 11:25:14 +0000423 asn_DEF_ExtensibleExtensions_tags_1,
424 sizeof(asn_DEF_ExtensibleExtensions_tags_1)
425 /sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
426 asn_DEF_ExtensibleExtensions_tags_1, /* Same as above */
427 sizeof(asn_DEF_ExtensibleExtensions_tags_1)
428 /sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700429 { 0, 0, ExtensibleExtensions_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000430 0, 0, /* No members */
431 0 /* No specifics */
432};
433
434
435/*** <<< INCLUDES [Str1] >>> ***/
436
437#include <IA5String.h>
438
439/*** <<< TYPE-DECLS [Str1] >>> ***/
440
Lev Walkin006de1c2004-08-20 13:37:45 +0000441typedef IA5String_t Str1_t;
442
Lev Walkin006de1c2004-08-20 13:37:45 +0000443/*** <<< FUNC-DECLS [Str1] >>> ***/
444
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000445extern asn_TYPE_descriptor_t asn_DEF_Str1;
446asn_struct_free_f Str1_free;
447asn_struct_print_f Str1_print;
448asn_constr_check_f Str1_constraint;
449ber_type_decoder_f Str1_decode_ber;
450der_type_encoder_f Str1_encode_der;
451xer_type_decoder_f Str1_decode_xer;
452xer_type_encoder_f Str1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000453
454/*** <<< CODE [Str1] >>> ***/
455
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000456/*
457 * This type is implemented using IA5String,
458 * so here we adjust the DEF accordingly.
459 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000460
461/*** <<< STAT-DEFS [Str1] >>> ***/
462
Lev Walkina7591b52014-10-12 18:37:35 -0700463static const ber_tlv_tag_t asn_DEF_Str1_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000464 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
465};
466asn_TYPE_descriptor_t asn_DEF_Str1 = {
467 "Str1",
468 "Str1",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800469 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000470 asn_DEF_Str1_tags_1,
471 sizeof(asn_DEF_Str1_tags_1)
472 /sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
473 asn_DEF_Str1_tags_1, /* Same as above */
474 sizeof(asn_DEF_Str1_tags_1)
475 /sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700476 { 0, 0, IA5String_constraint },
Lev Walkincaf0d5a2005-03-04 23:48:19 +0000477 0, 0, /* No members */
478 0 /* No specifics */
479};
Lev Walkin006de1c2004-08-20 13:37:45 +0000480
481
482/*** <<< INCLUDES [Str2] >>> ***/
483
Lev Walkin22b5ed42006-09-13 02:51:20 +0000484#include "Str1.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000485
486/*** <<< TYPE-DECLS [Str2] >>> ***/
487
Lev Walkin006de1c2004-08-20 13:37:45 +0000488typedef Str1_t Str2_t;
489
Lev Walkin006de1c2004-08-20 13:37:45 +0000490/*** <<< FUNC-DECLS [Str2] >>> ***/
491
Lev Walkindfae9752004-09-29 13:19:37 +0000492extern asn_TYPE_descriptor_t asn_DEF_Str2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000493asn_struct_free_f Str2_free;
494asn_struct_print_f Str2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000495asn_constr_check_f Str2_constraint;
496ber_type_decoder_f Str2_decode_ber;
497der_type_encoder_f Str2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000498xer_type_decoder_f Str2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000499xer_type_encoder_f Str2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000500
501/*** <<< CTABLES [Str2] >>> ***/
502
Lev Walkine8318b82005-03-06 09:29:03 +0000503static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000504 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000505 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000506 const uint8_t *ch = st->buf;
507 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000508
509 for(; ch < end; ch++) {
510 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000511 if(!(cv <= 127)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000512 }
Lev Walkin775885e2004-08-22 12:47:03 +0000513 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000514}
515
516
517/*** <<< CODE [Str2] >>> ***/
518
519int
Lev Walkin20696a42017-10-17 21:27:33 -0700520Str2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000521 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000522 const Str1_t *st = (const Str1_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000523 size_t size;
524
525 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700526 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000527 "%s: value not given (%s:%d)",
528 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000529 return -1;
530 }
531
532 size = st->size;
533
534 if(((size <= 20) || (size >= 25 && size <= 30))
Lev Walkine8318b82005-03-06 09:29:03 +0000535 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000536 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000537 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000538 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700539 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000540 "%s: constraint failed (%s:%d)",
541 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000542 return -1;
543 }
544}
545
546/*
547 * This type is implemented using Str1,
Lev Walkinc3808c12004-09-23 22:14:58 +0000548 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000549 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000550
551/*** <<< STAT-DEFS [Str2] >>> ***/
552
Lev Walkina7591b52014-10-12 18:37:35 -0700553static const ber_tlv_tag_t asn_DEF_Str2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000554 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000555};
Lev Walkindfae9752004-09-29 13:19:37 +0000556asn_TYPE_descriptor_t asn_DEF_Str2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000557 "Str2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000558 "Str2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800559 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000560 asn_DEF_Str2_tags_1,
561 sizeof(asn_DEF_Str2_tags_1)
562 /sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
563 asn_DEF_Str2_tags_1, /* Same as above */
564 sizeof(asn_DEF_Str2_tags_1)
565 /sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700566 { 0, 0, Str2_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000567 0, 0, /* No members */
568 0 /* No specifics */
569};
570
571
572/*** <<< INCLUDES [Str3] >>> ***/
573
Lev Walkin22b5ed42006-09-13 02:51:20 +0000574#include "Str2.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000575
576/*** <<< TYPE-DECLS [Str3] >>> ***/
577
Lev Walkin006de1c2004-08-20 13:37:45 +0000578typedef Str2_t Str3_t;
579
Lev Walkin006de1c2004-08-20 13:37:45 +0000580/*** <<< FUNC-DECLS [Str3] >>> ***/
581
Lev Walkindfae9752004-09-29 13:19:37 +0000582extern asn_TYPE_descriptor_t asn_DEF_Str3;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000583asn_struct_free_f Str3_free;
584asn_struct_print_f Str3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000585asn_constr_check_f Str3_constraint;
586ber_type_decoder_f Str3_decode_ber;
587der_type_encoder_f Str3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000588xer_type_decoder_f Str3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000589xer_type_encoder_f Str3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000590
591/*** <<< CTABLES [Str3] >>> ***/
592
Lev Walkina7591b52014-10-12 18:37:35 -0700593static const int permitted_alphabet_table_1[256] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +0000594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
598 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* ABC */
599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
600 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* def */
Lev Walkin006de1c2004-08-20 13:37:45 +0000601};
602
Lev Walkine8318b82005-03-06 09:29:03 +0000603static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -0700604 const int *table = permitted_alphabet_table_1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000605 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000606 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000607 const uint8_t *ch = st->buf;
608 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000609
610 for(; ch < end; ch++) {
611 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000612 if(!table[cv]) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000613 }
Lev Walkin775885e2004-08-22 12:47:03 +0000614 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000615}
616
617
618/*** <<< CODE [Str3] >>> ***/
619
620int
Lev Walkin20696a42017-10-17 21:27:33 -0700621Str3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000622 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000623 const Str2_t *st = (const Str2_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000624 size_t size;
625
626 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700627 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000628 "%s: value not given (%s:%d)",
629 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000630 return -1;
631 }
632
633 size = st->size;
634
635 if(((size >= 10 && size <= 20) || (size >= 25 && size <= 27))
Lev Walkine8318b82005-03-06 09:29:03 +0000636 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000637 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000638 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000639 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700640 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000641 "%s: constraint failed (%s:%d)",
642 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000643 return -1;
644 }
645}
646
647/*
648 * This type is implemented using Str2,
Lev Walkinc3808c12004-09-23 22:14:58 +0000649 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000650 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000651
652/*** <<< STAT-DEFS [Str3] >>> ***/
653
Lev Walkina7591b52014-10-12 18:37:35 -0700654static const ber_tlv_tag_t asn_DEF_Str3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000655 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000656};
Lev Walkindfae9752004-09-29 13:19:37 +0000657asn_TYPE_descriptor_t asn_DEF_Str3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000658 "Str3",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000659 "Str3",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800660 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000661 asn_DEF_Str3_tags_1,
662 sizeof(asn_DEF_Str3_tags_1)
663 /sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
664 asn_DEF_Str3_tags_1, /* Same as above */
665 sizeof(asn_DEF_Str3_tags_1)
666 /sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700667 { 0, 0, Str3_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000668 0, 0, /* No members */
669 0 /* No specifics */
670};
671
672
Lev Walkin8a99bf72004-09-10 06:07:39 +0000673/*** <<< INCLUDES [Str4] >>> ***/
674
675#include <IA5String.h>
676
677/*** <<< TYPE-DECLS [Str4] >>> ***/
678
Lev Walkin8a99bf72004-09-10 06:07:39 +0000679typedef IA5String_t Str4_t;
680
681/*** <<< FUNC-DECLS [Str4] >>> ***/
682
Lev Walkindfae9752004-09-29 13:19:37 +0000683extern asn_TYPE_descriptor_t asn_DEF_Str4;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000684asn_struct_free_f Str4_free;
685asn_struct_print_f Str4_print;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000686asn_constr_check_f Str4_constraint;
687ber_type_decoder_f Str4_decode_ber;
688der_type_encoder_f Str4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000689xer_type_decoder_f Str4_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000690xer_type_encoder_f Str4_encode_xer;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000691
692/*** <<< CTABLES [Str4] >>> ***/
693
Lev Walkine8318b82005-03-06 09:29:03 +0000694static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000695 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000696 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000697 const uint8_t *ch = st->buf;
698 const uint8_t *end = ch + st->size;
699
700 for(; ch < end; ch++) {
701 uint8_t cv = *ch;
702 if(!(cv <= 127)) return -1;
703 }
704 return 0;
705}
706
707
708/*** <<< CODE [Str4] >>> ***/
709
710int
Lev Walkin20696a42017-10-17 21:27:33 -0700711Str4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000712 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000713 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin8a99bf72004-09-10 06:07:39 +0000714
715 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700716 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin8a99bf72004-09-10 06:07:39 +0000717 "%s: value not given (%s:%d)",
718 td->name, __FILE__, __LINE__);
719 return -1;
720 }
721
722
Lev Walkine8318b82005-03-06 09:29:03 +0000723 if(!check_permitted_alphabet_1(st)) {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000724 /* Constraint check succeeded */
725 return 0;
726 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700727 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin8a99bf72004-09-10 06:07:39 +0000728 "%s: constraint failed (%s:%d)",
729 td->name, __FILE__, __LINE__);
730 return -1;
731 }
732}
733
734/*
735 * This type is implemented using IA5String,
Lev Walkinc3808c12004-09-23 22:14:58 +0000736 * so here we adjust the DEF accordingly.
Lev Walkin8a99bf72004-09-10 06:07:39 +0000737 */
Lev Walkin8a99bf72004-09-10 06:07:39 +0000738
739/*** <<< STAT-DEFS [Str4] >>> ***/
740
Lev Walkina7591b52014-10-12 18:37:35 -0700741static const ber_tlv_tag_t asn_DEF_Str4_tags_1[] = {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000742 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
743};
Lev Walkindfae9752004-09-29 13:19:37 +0000744asn_TYPE_descriptor_t asn_DEF_Str4 = {
Lev Walkin8a99bf72004-09-10 06:07:39 +0000745 "Str4",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000746 "Str4",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800747 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000748 asn_DEF_Str4_tags_1,
749 sizeof(asn_DEF_Str4_tags_1)
750 /sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
751 asn_DEF_Str4_tags_1, /* Same as above */
752 sizeof(asn_DEF_Str4_tags_1)
753 /sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700754 { 0, 0, Str4_constraint },
Lev Walkin8a99bf72004-09-10 06:07:39 +0000755 0, 0, /* No members */
756 0 /* No specifics */
757};
758
759
Lev Walkin006de1c2004-08-20 13:37:45 +0000760/*** <<< INCLUDES [PER-Visible] >>> ***/
761
762#include <IA5String.h>
763
764/*** <<< TYPE-DECLS [PER-Visible] >>> ***/
765
Lev Walkin006de1c2004-08-20 13:37:45 +0000766typedef IA5String_t PER_Visible_t;
767
Lev Walkin006de1c2004-08-20 13:37:45 +0000768/*** <<< FUNC-DECLS [PER-Visible] >>> ***/
769
Lev Walkindfae9752004-09-29 13:19:37 +0000770extern asn_TYPE_descriptor_t asn_DEF_PER_Visible;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000771asn_struct_free_f PER_Visible_free;
772asn_struct_print_f PER_Visible_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000773asn_constr_check_f PER_Visible_constraint;
774ber_type_decoder_f PER_Visible_decode_ber;
775der_type_encoder_f PER_Visible_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000776xer_type_decoder_f PER_Visible_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000777xer_type_encoder_f PER_Visible_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000778
779/*** <<< CTABLES [PER-Visible] >>> ***/
780
Lev Walkine8318b82005-03-06 09:29:03 +0000781static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000782 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000783 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000784 const uint8_t *ch = st->buf;
785 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000786
787 for(; ch < end; ch++) {
788 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000789 if(!(cv >= 65 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000790 }
Lev Walkin775885e2004-08-22 12:47:03 +0000791 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000792}
793
794
795/*** <<< CODE [PER-Visible] >>> ***/
796
797int
Lev Walkin20696a42017-10-17 21:27:33 -0700798PER_Visible_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000799 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000800 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000801
802 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700803 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000804 "%s: value not given (%s:%d)",
805 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000806 return -1;
807 }
808
809
Lev Walkine8318b82005-03-06 09:29:03 +0000810 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000811 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000812 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000813 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700814 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000815 "%s: constraint failed (%s:%d)",
816 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000817 return -1;
818 }
819}
820
821/*
822 * This type is implemented using IA5String,
Lev Walkinc3808c12004-09-23 22:14:58 +0000823 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000824 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000825
826/*** <<< STAT-DEFS [PER-Visible] >>> ***/
827
Lev Walkina7591b52014-10-12 18:37:35 -0700828static const ber_tlv_tag_t asn_DEF_PER_Visible_tags_1[] = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000829 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
830};
Lev Walkindfae9752004-09-29 13:19:37 +0000831asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000832 "PER-Visible",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000833 "PER-Visible",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800834 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000835 asn_DEF_PER_Visible_tags_1,
836 sizeof(asn_DEF_PER_Visible_tags_1)
837 /sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
838 asn_DEF_PER_Visible_tags_1, /* Same as above */
839 sizeof(asn_DEF_PER_Visible_tags_1)
840 /sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700841 { 0, 0, PER_Visible_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000842 0, 0, /* No members */
843 0 /* No specifics */
844};
845
846
847/*** <<< INCLUDES [PER-Visible-2] >>> ***/
848
Lev Walkin22b5ed42006-09-13 02:51:20 +0000849#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000850
851/*** <<< TYPE-DECLS [PER-Visible-2] >>> ***/
852
Lev Walkin006de1c2004-08-20 13:37:45 +0000853typedef PER_Visible_t PER_Visible_2_t;
854
Lev Walkin006de1c2004-08-20 13:37:45 +0000855/*** <<< FUNC-DECLS [PER-Visible-2] >>> ***/
856
Lev Walkindfae9752004-09-29 13:19:37 +0000857extern asn_TYPE_descriptor_t asn_DEF_PER_Visible_2;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000858asn_struct_free_f PER_Visible_2_free;
859asn_struct_print_f PER_Visible_2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000860asn_constr_check_f PER_Visible_2_constraint;
861ber_type_decoder_f PER_Visible_2_decode_ber;
862der_type_encoder_f PER_Visible_2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000863xer_type_decoder_f PER_Visible_2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000864xer_type_encoder_f PER_Visible_2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000865
866/*** <<< CTABLES [PER-Visible-2] >>> ***/
867
Lev Walkine8318b82005-03-06 09:29:03 +0000868static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000869 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000870 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000871 const uint8_t *ch = st->buf;
872 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000873
874 for(; ch < end; ch++) {
875 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000876 if(!(cv >= 69 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000877 }
Lev Walkin775885e2004-08-22 12:47:03 +0000878 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000879}
880
881
882/*** <<< CODE [PER-Visible-2] >>> ***/
883
884int
Lev Walkin20696a42017-10-17 21:27:33 -0700885PER_Visible_2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000886 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000887 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000888
889 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700890 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000891 "%s: value not given (%s:%d)",
892 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000893 return -1;
894 }
895
896
Lev Walkine8318b82005-03-06 09:29:03 +0000897 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000898 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000899 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000900 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700901 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000902 "%s: constraint failed (%s:%d)",
903 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000904 return -1;
905 }
906}
907
908/*
909 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +0000910 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000911 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000912
913/*** <<< STAT-DEFS [PER-Visible-2] >>> ***/
914
Lev Walkina7591b52014-10-12 18:37:35 -0700915static const ber_tlv_tag_t asn_DEF_PER_Visible_2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +0000916 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +0000917};
Lev Walkindfae9752004-09-29 13:19:37 +0000918asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +0000919 "PER-Visible-2",
Lev Walkindc06f6b2004-10-20 15:50:55 +0000920 "PER-Visible-2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +0800921 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +0000922 asn_DEF_PER_Visible_2_tags_1,
923 sizeof(asn_DEF_PER_Visible_2_tags_1)
924 /sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
925 asn_DEF_PER_Visible_2_tags_1, /* Same as above */
926 sizeof(asn_DEF_PER_Visible_2_tags_1)
927 /sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -0700928 { 0, 0, PER_Visible_2_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +0000929 0, 0, /* No members */
930 0 /* No specifics */
931};
932
933
934/*** <<< INCLUDES [Not-PER-Visible-1] >>> ***/
935
Lev Walkin22b5ed42006-09-13 02:51:20 +0000936#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +0000937
938/*** <<< TYPE-DECLS [Not-PER-Visible-1] >>> ***/
939
Lev Walkin006de1c2004-08-20 13:37:45 +0000940typedef PER_Visible_t Not_PER_Visible_1_t;
941
Lev Walkin006de1c2004-08-20 13:37:45 +0000942/*** <<< FUNC-DECLS [Not-PER-Visible-1] >>> ***/
943
Lev Walkindfae9752004-09-29 13:19:37 +0000944extern asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000945asn_struct_free_f Not_PER_Visible_1_free;
946asn_struct_print_f Not_PER_Visible_1_print;
Lev Walkin006de1c2004-08-20 13:37:45 +0000947asn_constr_check_f Not_PER_Visible_1_constraint;
948ber_type_decoder_f Not_PER_Visible_1_decode_ber;
949der_type_encoder_f Not_PER_Visible_1_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +0000950xer_type_decoder_f Not_PER_Visible_1_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +0000951xer_type_encoder_f Not_PER_Visible_1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +0000952
953/*** <<< CTABLES [Not-PER-Visible-1] >>> ***/
954
Lev Walkine8318b82005-03-06 09:29:03 +0000955static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000956 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000957 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +0000958 const uint8_t *ch = st->buf;
959 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +0000960
961 for(; ch < end; ch++) {
962 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +0000963 if(!(cv >= 65 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +0000964 }
Lev Walkin775885e2004-08-22 12:47:03 +0000965 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000966}
967
968
969/*** <<< CODE [Not-PER-Visible-1] >>> ***/
970
971int
Lev Walkin20696a42017-10-17 21:27:33 -0700972Not_PER_Visible_1_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +0000973 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +0000974 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +0000975
976 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700977 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000978 "%s: value not given (%s:%d)",
979 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000980 return -1;
981 }
982
983
Lev Walkine8318b82005-03-06 09:29:03 +0000984 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +0000985 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +0000986 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +0000987 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -0700988 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +0000989 "%s: constraint failed (%s:%d)",
990 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +0000991 return -1;
992 }
993}
994
995/*
996 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +0000997 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +0000998 */
Lev Walkin006de1c2004-08-20 13:37:45 +0000999
1000/*** <<< STAT-DEFS [Not-PER-Visible-1] >>> ***/
1001
Lev Walkina7591b52014-10-12 18:37:35 -07001002static const ber_tlv_tag_t asn_DEF_Not_PER_Visible_1_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001003 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001004};
Lev Walkindfae9752004-09-29 13:19:37 +00001005asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001006 "Not-PER-Visible-1",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001007 "Not-PER-Visible-1",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001008 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001009 asn_DEF_Not_PER_Visible_1_tags_1,
1010 sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
1011 /sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
1012 asn_DEF_Not_PER_Visible_1_tags_1, /* Same as above */
1013 sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
1014 /sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001015 { 0, 0, Not_PER_Visible_1_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001016 0, 0, /* No members */
1017 0 /* No specifics */
1018};
1019
1020
1021/*** <<< INCLUDES [Not-PER-Visible-2] >>> ***/
1022
Lev Walkin22b5ed42006-09-13 02:51:20 +00001023#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001024
1025/*** <<< TYPE-DECLS [Not-PER-Visible-2] >>> ***/
1026
Lev Walkin006de1c2004-08-20 13:37:45 +00001027typedef PER_Visible_t Not_PER_Visible_2_t;
1028
Lev Walkin006de1c2004-08-20 13:37:45 +00001029/*** <<< FUNC-DECLS [Not-PER-Visible-2] >>> ***/
1030
Lev Walkindfae9752004-09-29 13:19:37 +00001031extern asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001032asn_struct_free_f Not_PER_Visible_2_free;
1033asn_struct_print_f Not_PER_Visible_2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001034asn_constr_check_f Not_PER_Visible_2_constraint;
1035ber_type_decoder_f Not_PER_Visible_2_decode_ber;
1036der_type_encoder_f Not_PER_Visible_2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001037xer_type_decoder_f Not_PER_Visible_2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001038xer_type_encoder_f Not_PER_Visible_2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001039
Lev Walkind35c8b52004-08-25 02:08:08 +00001040/*** <<< CTABLES [Not-PER-Visible-2] >>> ***/
1041
Lev Walkine8318b82005-03-06 09:29:03 +00001042static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001043 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001044 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +00001045 const uint8_t *ch = st->buf;
1046 const uint8_t *end = ch + st->size;
1047
1048 for(; ch < end; ch++) {
1049 uint8_t cv = *ch;
1050 if(!(cv >= 65 && cv <= 66)) return -1;
1051 }
1052 return 0;
1053}
1054
1055
Lev Walkin006de1c2004-08-20 13:37:45 +00001056/*** <<< CODE [Not-PER-Visible-2] >>> ***/
1057
1058int
Lev Walkin20696a42017-10-17 21:27:33 -07001059Not_PER_Visible_2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001060 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001061 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001062
1063 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001064 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001065 "%s: value not given (%s:%d)",
1066 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001067 return -1;
1068 }
1069
1070
Lev Walkine8318b82005-03-06 09:29:03 +00001071 if(!check_permitted_alphabet_1(st)) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001072 /* Constraint check succeeded */
1073 return 0;
1074 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001075 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +00001076 "%s: constraint failed (%s:%d)",
1077 td->name, __FILE__, __LINE__);
1078 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001079 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001080}
1081
1082/*
1083 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001084 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001085 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001086
1087/*** <<< STAT-DEFS [Not-PER-Visible-2] >>> ***/
1088
Lev Walkina7591b52014-10-12 18:37:35 -07001089static const ber_tlv_tag_t asn_DEF_Not_PER_Visible_2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001090 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001091};
Lev Walkindfae9752004-09-29 13:19:37 +00001092asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001093 "Not-PER-Visible-2",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001094 "Not-PER-Visible-2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001095 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001096 asn_DEF_Not_PER_Visible_2_tags_1,
1097 sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
1098 /sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
1099 asn_DEF_Not_PER_Visible_2_tags_1, /* Same as above */
1100 sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
1101 /sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001102 { 0, 0, Not_PER_Visible_2_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001103 0, 0, /* No members */
1104 0 /* No specifics */
1105};
1106
1107
1108/*** <<< INCLUDES [Not-PER-Visible-3] >>> ***/
1109
Lev Walkin22b5ed42006-09-13 02:51:20 +00001110#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001111
1112/*** <<< TYPE-DECLS [Not-PER-Visible-3] >>> ***/
1113
Lev Walkin006de1c2004-08-20 13:37:45 +00001114typedef PER_Visible_t Not_PER_Visible_3_t;
1115
Lev Walkin006de1c2004-08-20 13:37:45 +00001116/*** <<< FUNC-DECLS [Not-PER-Visible-3] >>> ***/
1117
Lev Walkindfae9752004-09-29 13:19:37 +00001118extern asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001119asn_struct_free_f Not_PER_Visible_3_free;
1120asn_struct_print_f Not_PER_Visible_3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001121asn_constr_check_f Not_PER_Visible_3_constraint;
1122ber_type_decoder_f Not_PER_Visible_3_decode_ber;
1123der_type_encoder_f Not_PER_Visible_3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001124xer_type_decoder_f Not_PER_Visible_3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001125xer_type_encoder_f Not_PER_Visible_3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001126
Lev Walkind35c8b52004-08-25 02:08:08 +00001127/*** <<< CTABLES [Not-PER-Visible-3] >>> ***/
1128
Lev Walkine8318b82005-03-06 09:29:03 +00001129static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001130 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001131 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkind35c8b52004-08-25 02:08:08 +00001132 const uint8_t *ch = st->buf;
1133 const uint8_t *end = ch + st->size;
1134
1135 for(; ch < end; ch++) {
1136 uint8_t cv = *ch;
1137 if(!(cv >= 65 && cv <= 66)) return -1;
1138 }
1139 return 0;
1140}
1141
1142
Lev Walkin006de1c2004-08-20 13:37:45 +00001143/*** <<< CODE [Not-PER-Visible-3] >>> ***/
1144
1145int
Lev Walkin20696a42017-10-17 21:27:33 -07001146Not_PER_Visible_3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001147 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001148 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001149
1150 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001151 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001152 "%s: value not given (%s:%d)",
1153 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001154 return -1;
1155 }
1156
1157
Lev Walkine8318b82005-03-06 09:29:03 +00001158 if(!check_permitted_alphabet_1(st)) {
Lev Walkind35c8b52004-08-25 02:08:08 +00001159 /* Constraint check succeeded */
1160 return 0;
1161 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001162 ASN__CTFAIL(app_key, td, sptr,
Lev Walkind35c8b52004-08-25 02:08:08 +00001163 "%s: constraint failed (%s:%d)",
1164 td->name, __FILE__, __LINE__);
1165 return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001166 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001167}
1168
1169/*
1170 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001171 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001172 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001173
1174/*** <<< STAT-DEFS [Not-PER-Visible-3] >>> ***/
1175
Lev Walkina7591b52014-10-12 18:37:35 -07001176static const ber_tlv_tag_t asn_DEF_Not_PER_Visible_3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001177 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001178};
Lev Walkindfae9752004-09-29 13:19:37 +00001179asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001180 "Not-PER-Visible-3",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001181 "Not-PER-Visible-3",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001182 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001183 asn_DEF_Not_PER_Visible_3_tags_1,
1184 sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
1185 /sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
1186 asn_DEF_Not_PER_Visible_3_tags_1, /* Same as above */
1187 sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
1188 /sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001189 { 0, 0, Not_PER_Visible_3_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001190 0, 0, /* No members */
1191 0 /* No specifics */
1192};
1193
1194
1195/*** <<< INCLUDES [SIZE-but-not-FROM] >>> ***/
1196
Lev Walkin22b5ed42006-09-13 02:51:20 +00001197#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001198
1199/*** <<< TYPE-DECLS [SIZE-but-not-FROM] >>> ***/
1200
Lev Walkin006de1c2004-08-20 13:37:45 +00001201typedef PER_Visible_t SIZE_but_not_FROM_t;
1202
Lev Walkin006de1c2004-08-20 13:37:45 +00001203/*** <<< FUNC-DECLS [SIZE-but-not-FROM] >>> ***/
1204
Lev Walkindfae9752004-09-29 13:19:37 +00001205extern asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001206asn_struct_free_f SIZE_but_not_FROM_free;
1207asn_struct_print_f SIZE_but_not_FROM_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001208asn_constr_check_f SIZE_but_not_FROM_constraint;
1209ber_type_decoder_f SIZE_but_not_FROM_decode_ber;
1210der_type_encoder_f SIZE_but_not_FROM_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001211xer_type_decoder_f SIZE_but_not_FROM_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001212xer_type_encoder_f SIZE_but_not_FROM_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001213
1214/*** <<< CTABLES [SIZE-but-not-FROM] >>> ***/
1215
Lev Walkine8318b82005-03-06 09:29:03 +00001216static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001217 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001218 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001219 const uint8_t *ch = st->buf;
1220 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001221
1222 for(; ch < end; ch++) {
1223 uint8_t cv = *ch;
Lev Walkind35c8b52004-08-25 02:08:08 +00001224 if(!(cv >= 65 && cv <= 68)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001225 }
Lev Walkin775885e2004-08-22 12:47:03 +00001226 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001227}
1228
1229
1230/*** <<< CODE [SIZE-but-not-FROM] >>> ***/
1231
1232int
Lev Walkin20696a42017-10-17 21:27:33 -07001233SIZE_but_not_FROM_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001234 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001235 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001236 size_t size;
1237
1238 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001239 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001240 "%s: value not given (%s:%d)",
1241 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001242 return -1;
1243 }
1244
1245 size = st->size;
1246
1247 if((size >= 1 && size <= 4)
Lev Walkine8318b82005-03-06 09:29:03 +00001248 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001249 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001250 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001251 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001252 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001253 "%s: constraint failed (%s:%d)",
1254 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001255 return -1;
1256 }
1257}
1258
1259/*
1260 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001261 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001262 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001263
1264/*** <<< STAT-DEFS [SIZE-but-not-FROM] >>> ***/
1265
Lev Walkina7591b52014-10-12 18:37:35 -07001266static const ber_tlv_tag_t asn_DEF_SIZE_but_not_FROM_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001267 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001268};
Lev Walkindfae9752004-09-29 13:19:37 +00001269asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001270 "SIZE-but-not-FROM",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001271 "SIZE-but-not-FROM",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001272 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001273 asn_DEF_SIZE_but_not_FROM_tags_1,
1274 sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
1275 /sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
1276 asn_DEF_SIZE_but_not_FROM_tags_1, /* Same as above */
1277 sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
1278 /sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001279 { 0, 0, SIZE_but_not_FROM_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001280 0, 0, /* No members */
1281 0 /* No specifics */
1282};
1283
1284
1285/*** <<< INCLUDES [SIZE-and-FROM] >>> ***/
1286
Lev Walkin22b5ed42006-09-13 02:51:20 +00001287#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001288
1289/*** <<< TYPE-DECLS [SIZE-and-FROM] >>> ***/
1290
Lev Walkin006de1c2004-08-20 13:37:45 +00001291typedef PER_Visible_t SIZE_and_FROM_t;
1292
Lev Walkin006de1c2004-08-20 13:37:45 +00001293/*** <<< FUNC-DECLS [SIZE-and-FROM] >>> ***/
1294
Lev Walkindfae9752004-09-29 13:19:37 +00001295extern asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001296asn_struct_free_f SIZE_and_FROM_free;
1297asn_struct_print_f SIZE_and_FROM_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001298asn_constr_check_f SIZE_and_FROM_constraint;
1299ber_type_decoder_f SIZE_and_FROM_decode_ber;
1300der_type_encoder_f SIZE_and_FROM_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001301xer_type_decoder_f SIZE_and_FROM_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001302xer_type_encoder_f SIZE_and_FROM_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001303
1304/*** <<< CTABLES [SIZE-and-FROM] >>> ***/
1305
Lev Walkine8318b82005-03-06 09:29:03 +00001306static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001307 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001308 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001309 const uint8_t *ch = st->buf;
1310 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001311
1312 for(; ch < end; ch++) {
1313 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001314 if(!(cv >= 65 && cv <= 68)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001315 }
Lev Walkin775885e2004-08-22 12:47:03 +00001316 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001317}
1318
1319
1320/*** <<< CODE [SIZE-and-FROM] >>> ***/
1321
1322int
Lev Walkin20696a42017-10-17 21:27:33 -07001323SIZE_and_FROM_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001324 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001325 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001326 size_t size;
1327
1328 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001329 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001330 "%s: value not given (%s:%d)",
1331 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001332 return -1;
1333 }
1334
1335 size = st->size;
1336
1337 if((size >= 1 && size <= 4)
Lev Walkine8318b82005-03-06 09:29:03 +00001338 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001339 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001340 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001341 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001342 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001343 "%s: constraint failed (%s:%d)",
1344 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001345 return -1;
1346 }
1347}
1348
1349/*
1350 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001351 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001352 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001353
1354/*** <<< STAT-DEFS [SIZE-and-FROM] >>> ***/
1355
Lev Walkina7591b52014-10-12 18:37:35 -07001356static const ber_tlv_tag_t asn_DEF_SIZE_and_FROM_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001357 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001358};
Lev Walkindfae9752004-09-29 13:19:37 +00001359asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001360 "SIZE-and-FROM",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001361 "SIZE-and-FROM",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001362 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001363 asn_DEF_SIZE_and_FROM_tags_1,
1364 sizeof(asn_DEF_SIZE_and_FROM_tags_1)
1365 /sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
1366 asn_DEF_SIZE_and_FROM_tags_1, /* Same as above */
1367 sizeof(asn_DEF_SIZE_and_FROM_tags_1)
1368 /sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001369 { 0, 0, SIZE_and_FROM_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001370 0, 0, /* No members */
1371 0 /* No specifics */
1372};
1373
1374
1375/*** <<< INCLUDES [Neither-SIZE-nor-FROM] >>> ***/
1376
Lev Walkin22b5ed42006-09-13 02:51:20 +00001377#include "PER-Visible.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001378
1379/*** <<< TYPE-DECLS [Neither-SIZE-nor-FROM] >>> ***/
1380
Lev Walkin006de1c2004-08-20 13:37:45 +00001381typedef PER_Visible_t Neither_SIZE_nor_FROM_t;
1382
Lev Walkin006de1c2004-08-20 13:37:45 +00001383/*** <<< FUNC-DECLS [Neither-SIZE-nor-FROM] >>> ***/
1384
Lev Walkindfae9752004-09-29 13:19:37 +00001385extern asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001386asn_struct_free_f Neither_SIZE_nor_FROM_free;
1387asn_struct_print_f Neither_SIZE_nor_FROM_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001388asn_constr_check_f Neither_SIZE_nor_FROM_constraint;
1389ber_type_decoder_f Neither_SIZE_nor_FROM_decode_ber;
1390der_type_encoder_f Neither_SIZE_nor_FROM_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001391xer_type_decoder_f Neither_SIZE_nor_FROM_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001392xer_type_encoder_f Neither_SIZE_nor_FROM_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001393
1394/*** <<< CTABLES [Neither-SIZE-nor-FROM] >>> ***/
1395
Lev Walkine8318b82005-03-06 09:29:03 +00001396static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001397 /* The underlying type is IA5String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001398 const IA5String_t *st = (const IA5String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001399 const uint8_t *ch = st->buf;
1400 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001401
1402 for(; ch < end; ch++) {
1403 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001404 if(!(cv >= 65 && cv <= 70)) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001405 }
Lev Walkin775885e2004-08-22 12:47:03 +00001406 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001407}
1408
1409
1410/*** <<< CODE [Neither-SIZE-nor-FROM] >>> ***/
1411
1412int
Lev Walkin20696a42017-10-17 21:27:33 -07001413Neither_SIZE_nor_FROM_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001414 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001415 const PER_Visible_t *st = (const PER_Visible_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001416
1417 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001418 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001419 "%s: value not given (%s:%d)",
1420 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001421 return -1;
1422 }
1423
1424
Lev Walkine8318b82005-03-06 09:29:03 +00001425 if(!check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001426 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001427 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001428 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001429 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001430 "%s: constraint failed (%s:%d)",
1431 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001432 return -1;
1433 }
1434}
1435
1436/*
1437 * This type is implemented using PER_Visible,
Lev Walkinc3808c12004-09-23 22:14:58 +00001438 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001439 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001440
1441/*** <<< STAT-DEFS [Neither-SIZE-nor-FROM] >>> ***/
1442
Lev Walkina7591b52014-10-12 18:37:35 -07001443static const ber_tlv_tag_t asn_DEF_Neither_SIZE_nor_FROM_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001444 (ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001445};
Lev Walkindfae9752004-09-29 13:19:37 +00001446asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001447 "Neither-SIZE-nor-FROM",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001448 "Neither-SIZE-nor-FROM",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001449 &asn_OP_IA5String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001450 asn_DEF_Neither_SIZE_nor_FROM_tags_1,
1451 sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
1452 /sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
1453 asn_DEF_Neither_SIZE_nor_FROM_tags_1, /* Same as above */
1454 sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
1455 /sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001456 { 0, 0, Neither_SIZE_nor_FROM_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001457 0, 0, /* No members */
1458 0 /* No specifics */
1459};
1460
1461
Lev Walkin55cc44a2004-10-03 09:14:32 +00001462/*** <<< INCLUDES [Utf8-4] >>> ***/
1463
1464#include <UTF8String.h>
1465
1466/*** <<< TYPE-DECLS [Utf8-4] >>> ***/
1467
Lev Walkin55cc44a2004-10-03 09:14:32 +00001468typedef UTF8String_t Utf8_4_t;
1469
1470/*** <<< FUNC-DECLS [Utf8-4] >>> ***/
1471
1472extern asn_TYPE_descriptor_t asn_DEF_Utf8_4;
1473asn_struct_free_f Utf8_4_free;
1474asn_struct_print_f Utf8_4_print;
1475asn_constr_check_f Utf8_4_constraint;
1476ber_type_decoder_f Utf8_4_decode_ber;
1477der_type_encoder_f Utf8_4_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001478xer_type_decoder_f Utf8_4_decode_xer;
Lev Walkin55cc44a2004-10-03 09:14:32 +00001479xer_type_encoder_f Utf8_4_encode_xer;
1480
1481/*** <<< CTABLES [Utf8-4] >>> ***/
1482
Lev Walkine8318b82005-03-06 09:29:03 +00001483static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkin55cc44a2004-10-03 09:14:32 +00001484 if(UTF8String_length((const UTF8String_t *)sptr) < 0)
1485 return -1; /* Alphabet (sic!) test failed. */
1486
1487 return 0;
1488}
1489
1490
1491/*** <<< CODE [Utf8-4] >>> ***/
1492
1493int
Lev Walkin20696a42017-10-17 21:27:33 -07001494Utf8_4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001495 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001496 const UTF8String_t *st = (const UTF8String_t *)sptr;
Lev Walkin55cc44a2004-10-03 09:14:32 +00001497
1498 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001499 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin55cc44a2004-10-03 09:14:32 +00001500 "%s: value not given (%s:%d)",
1501 td->name, __FILE__, __LINE__);
1502 return -1;
1503 }
1504
1505
Lev Walkine8318b82005-03-06 09:29:03 +00001506 if(!check_permitted_alphabet_1(st)) {
Lev Walkin55cc44a2004-10-03 09:14:32 +00001507 /* Constraint check succeeded */
1508 return 0;
1509 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001510 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin55cc44a2004-10-03 09:14:32 +00001511 "%s: constraint failed (%s:%d)",
1512 td->name, __FILE__, __LINE__);
1513 return -1;
1514 }
1515}
1516
1517/*
1518 * This type is implemented using UTF8String,
1519 * so here we adjust the DEF accordingly.
1520 */
Lev Walkin55cc44a2004-10-03 09:14:32 +00001521
1522/*** <<< STAT-DEFS [Utf8-4] >>> ***/
1523
Lev Walkina7591b52014-10-12 18:37:35 -07001524static const ber_tlv_tag_t asn_DEF_Utf8_4_tags_1[] = {
Lev Walkin55cc44a2004-10-03 09:14:32 +00001525 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
1526};
1527asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
1528 "Utf8-4",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001529 "Utf8-4",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001530 &asn_OP_UTF8String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001531 asn_DEF_Utf8_4_tags_1,
1532 sizeof(asn_DEF_Utf8_4_tags_1)
1533 /sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
1534 asn_DEF_Utf8_4_tags_1, /* Same as above */
1535 sizeof(asn_DEF_Utf8_4_tags_1)
1536 /sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001537 { 0, 0, Utf8_4_constraint },
Lev Walkin55cc44a2004-10-03 09:14:32 +00001538 0, 0, /* No members */
1539 0 /* No specifics */
1540};
1541
1542
Lev Walkin006de1c2004-08-20 13:37:45 +00001543/*** <<< INCLUDES [Utf8-3] >>> ***/
1544
Lev Walkin22b5ed42006-09-13 02:51:20 +00001545#include "Utf8-2.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001546
1547/*** <<< TYPE-DECLS [Utf8-3] >>> ***/
1548
Lev Walkin006de1c2004-08-20 13:37:45 +00001549typedef Utf8_2_t Utf8_3_t;
1550
Lev Walkin006de1c2004-08-20 13:37:45 +00001551/*** <<< FUNC-DECLS [Utf8-3] >>> ***/
1552
Lev Walkindfae9752004-09-29 13:19:37 +00001553extern asn_TYPE_descriptor_t asn_DEF_Utf8_3;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001554asn_struct_free_f Utf8_3_free;
1555asn_struct_print_f Utf8_3_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001556asn_constr_check_f Utf8_3_constraint;
1557ber_type_decoder_f Utf8_3_decode_ber;
1558der_type_encoder_f Utf8_3_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001559xer_type_decoder_f Utf8_3_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001560xer_type_encoder_f Utf8_3_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001561
1562/*** <<< CTABLES [Utf8-3] >>> ***/
1563
Lev Walkina7591b52014-10-12 18:37:35 -07001564static const int permitted_alphabet_table_1[128] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +00001565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1569 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, /* ABCDEFGHIJKLMNO */
157016,17,18,19,20,21,22,23,24,25,26, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */
1571 0,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41, /* abcdefghijklmno */
157242,43,44,45,46,47,48,49,50,51,52, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
Lev Walkin006de1c2004-08-20 13:37:45 +00001573};
1574
Lev Walkine8318b82005-03-06 09:29:03 +00001575static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -07001576 const int *table = permitted_alphabet_table_1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001577 /* The underlying type is UTF8String */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001578 const UTF8String_t *st = (const UTF8String_t *)sptr;
Lev Walkin634a3b82004-08-22 03:30:05 +00001579 const uint8_t *ch = st->buf;
1580 const uint8_t *end = ch + st->size;
Lev Walkin006de1c2004-08-20 13:37:45 +00001581
1582 for(; ch < end; ch++) {
1583 uint8_t cv = *ch;
Lev Walkin775885e2004-08-22 12:47:03 +00001584 if(cv >= 0x80) return -1;
1585 if(!table[cv]) return -1;
Lev Walkin006de1c2004-08-20 13:37:45 +00001586 }
Lev Walkin775885e2004-08-22 12:47:03 +00001587 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001588}
1589
1590
1591/*** <<< CODE [Utf8-3] >>> ***/
1592
1593int
Lev Walkin20696a42017-10-17 21:27:33 -07001594Utf8_3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001595 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001596 const Utf8_2_t *st = (const Utf8_2_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001597 size_t size;
1598
1599 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001600 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001601 "%s: value not given (%s:%d)",
1602 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001603 return -1;
1604 }
1605
Lev Walkinfac2e942004-10-02 16:33:46 +00001606 size = UTF8String_length(st);
Lev Walkin00df16d2004-10-02 16:44:30 +00001607 if((ssize_t)size < 0) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001608 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinfac2e942004-10-02 16:33:46 +00001609 "%s: UTF-8: broken encoding (%s:%d)",
1610 td->name, __FILE__, __LINE__);
1611 return -1;
1612 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001613
1614 if((size >= 1 && size <= 2)
Lev Walkine8318b82005-03-06 09:29:03 +00001615 && !check_permitted_alphabet_1(st)) {
Lev Walkin006de1c2004-08-20 13:37:45 +00001616 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001617 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001618 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001619 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001620 "%s: constraint failed (%s:%d)",
1621 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001622 return -1;
1623 }
1624}
1625
1626/*
1627 * This type is implemented using Utf8_2,
Lev Walkinc3808c12004-09-23 22:14:58 +00001628 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001629 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001630
1631/*** <<< STAT-DEFS [Utf8-3] >>> ***/
1632
Lev Walkina7591b52014-10-12 18:37:35 -07001633static const ber_tlv_tag_t asn_DEF_Utf8_3_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001634 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001635};
Lev Walkindfae9752004-09-29 13:19:37 +00001636asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001637 "Utf8-3",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001638 "Utf8-3",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001639 &asn_OP_UTF8String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001640 asn_DEF_Utf8_3_tags_1,
1641 sizeof(asn_DEF_Utf8_3_tags_1)
1642 /sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
1643 asn_DEF_Utf8_3_tags_1, /* Same as above */
1644 sizeof(asn_DEF_Utf8_3_tags_1)
1645 /sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001646 { 0, 0, Utf8_3_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001647 0, 0, /* No members */
1648 0 /* No specifics */
1649};
1650
1651
1652/*** <<< INCLUDES [Utf8-2] >>> ***/
1653
Lev Walkin22b5ed42006-09-13 02:51:20 +00001654#include "Utf8-1.h"
Lev Walkin006de1c2004-08-20 13:37:45 +00001655
1656/*** <<< TYPE-DECLS [Utf8-2] >>> ***/
1657
Lev Walkin006de1c2004-08-20 13:37:45 +00001658typedef Utf8_1_t Utf8_2_t;
1659
Lev Walkin006de1c2004-08-20 13:37:45 +00001660/*** <<< FUNC-DECLS [Utf8-2] >>> ***/
1661
Lev Walkindfae9752004-09-29 13:19:37 +00001662extern asn_TYPE_descriptor_t asn_DEF_Utf8_2;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001663asn_struct_free_f Utf8_2_free;
1664asn_struct_print_f Utf8_2_print;
Lev Walkin006de1c2004-08-20 13:37:45 +00001665asn_constr_check_f Utf8_2_constraint;
1666ber_type_decoder_f Utf8_2_decode_ber;
1667der_type_encoder_f Utf8_2_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00001668xer_type_decoder_f Utf8_2_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +00001669xer_type_encoder_f Utf8_2_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001670
1671/*** <<< CODE [Utf8-2] >>> ***/
1672
1673int
Lev Walkin20696a42017-10-17 21:27:33 -07001674Utf8_2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001675 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00001676 const Utf8_1_t *st = (const Utf8_1_t *)sptr;
Lev Walkin006de1c2004-08-20 13:37:45 +00001677 size_t size;
1678
1679 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001680 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001681 "%s: value not given (%s:%d)",
1682 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001683 return -1;
1684 }
1685
Lev Walkinfac2e942004-10-02 16:33:46 +00001686 size = UTF8String_length(st);
Lev Walkin00df16d2004-10-02 16:44:30 +00001687 if((ssize_t)size < 0) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001688 ASN__CTFAIL(app_key, td, sptr,
Lev Walkinfac2e942004-10-02 16:33:46 +00001689 "%s: UTF-8: broken encoding (%s:%d)",
1690 td->name, __FILE__, __LINE__);
1691 return -1;
1692 }
Lev Walkin006de1c2004-08-20 13:37:45 +00001693
1694 if((size >= 1 && size <= 2)) {
1695 /* Constraint check succeeded */
Lev Walkin775885e2004-08-22 12:47:03 +00001696 return 0;
Lev Walkin006de1c2004-08-20 13:37:45 +00001697 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001698 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin16835b62004-08-22 13:47:59 +00001699 "%s: constraint failed (%s:%d)",
1700 td->name, __FILE__, __LINE__);
Lev Walkin006de1c2004-08-20 13:37:45 +00001701 return -1;
1702 }
1703}
1704
1705/*
1706 * This type is implemented using Utf8_1,
Lev Walkinc3808c12004-09-23 22:14:58 +00001707 * so here we adjust the DEF accordingly.
Lev Walkin006de1c2004-08-20 13:37:45 +00001708 */
Lev Walkin006de1c2004-08-20 13:37:45 +00001709
1710/*** <<< STAT-DEFS [Utf8-2] >>> ***/
1711
Lev Walkina7591b52014-10-12 18:37:35 -07001712static const ber_tlv_tag_t asn_DEF_Utf8_2_tags_1[] = {
Lev Walkin906654e2004-09-10 15:49:15 +00001713 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
Lev Walkin006de1c2004-08-20 13:37:45 +00001714};
Lev Walkindfae9752004-09-29 13:19:37 +00001715asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
Lev Walkin006de1c2004-08-20 13:37:45 +00001716 "Utf8-2",
Lev Walkindc06f6b2004-10-20 15:50:55 +00001717 "Utf8-2",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001718 &asn_OP_UTF8String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001719 asn_DEF_Utf8_2_tags_1,
1720 sizeof(asn_DEF_Utf8_2_tags_1)
1721 /sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
1722 asn_DEF_Utf8_2_tags_1, /* Same as above */
1723 sizeof(asn_DEF_Utf8_2_tags_1)
1724 /sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001725 { 0, 0, Utf8_2_constraint },
Lev Walkin006de1c2004-08-20 13:37:45 +00001726 0, 0, /* No members */
1727 0 /* No specifics */
1728};
1729
1730
1731/*** <<< INCLUDES [Utf8-1] >>> ***/
1732
1733#include <UTF8String.h>
1734
1735/*** <<< TYPE-DECLS [Utf8-1] >>> ***/
1736
Lev Walkin006de1c2004-08-20 13:37:45 +00001737typedef UTF8String_t Utf8_1_t;
1738
Lev Walkin006de1c2004-08-20 13:37:45 +00001739/*** <<< FUNC-DECLS [Utf8-1] >>> ***/
1740
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001741extern asn_TYPE_descriptor_t asn_DEF_Utf8_1;
1742asn_struct_free_f Utf8_1_free;
1743asn_struct_print_f Utf8_1_print;
1744asn_constr_check_f Utf8_1_constraint;
1745ber_type_decoder_f Utf8_1_decode_ber;
1746der_type_encoder_f Utf8_1_encode_der;
1747xer_type_decoder_f Utf8_1_decode_xer;
1748xer_type_encoder_f Utf8_1_encode_xer;
Lev Walkin006de1c2004-08-20 13:37:45 +00001749
1750/*** <<< CODE [Utf8-1] >>> ***/
1751
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001752/*
1753 * This type is implemented using UTF8String,
1754 * so here we adjust the DEF accordingly.
1755 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001756
1757/*** <<< STAT-DEFS [Utf8-1] >>> ***/
1758
Lev Walkina7591b52014-10-12 18:37:35 -07001759static const ber_tlv_tag_t asn_DEF_Utf8_1_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001760 (ASN_TAG_CLASS_UNIVERSAL | (12 << 2))
1761};
1762asn_TYPE_descriptor_t asn_DEF_Utf8_1 = {
1763 "Utf8-1",
1764 "Utf8-1",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001765 &asn_OP_UTF8String,
Lev Walkin59b176e2005-11-26 11:25:14 +00001766 asn_DEF_Utf8_1_tags_1,
1767 sizeof(asn_DEF_Utf8_1_tags_1)
1768 /sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
1769 asn_DEF_Utf8_1_tags_1, /* Same as above */
1770 sizeof(asn_DEF_Utf8_1_tags_1)
1771 /sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001772 { 0, 0, UTF8String_constraint },
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001773 0, 0, /* No members */
1774 0 /* No specifics */
1775};
Lev Walkin006de1c2004-08-20 13:37:45 +00001776
Lev Walkine4ca5ce2004-09-15 11:44:13 +00001777
1778/*** <<< INCLUDES [VisibleIdentifier] >>> ***/
1779
Lev Walkin22b5ed42006-09-13 02:51:20 +00001780#include "Identifier.h"
Lev Walkine4ca5ce2004-09-15 11:44:13 +00001781
1782/*** <<< TYPE-DECLS [VisibleIdentifier] >>> ***/
1783
Lev Walkine4ca5ce2004-09-15 11:44:13 +00001784typedef Identifier_t VisibleIdentifier_t;
1785
1786/*** <<< FUNC-DECLS [VisibleIdentifier] >>> ***/
1787
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001788extern asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier;
1789asn_struct_free_f VisibleIdentifier_free;
1790asn_struct_print_f VisibleIdentifier_print;
1791asn_constr_check_f VisibleIdentifier_constraint;
1792ber_type_decoder_f VisibleIdentifier_decode_ber;
1793der_type_encoder_f VisibleIdentifier_encode_der;
1794xer_type_decoder_f VisibleIdentifier_decode_xer;
1795xer_type_encoder_f VisibleIdentifier_encode_xer;
1796
1797/*** <<< CTABLES [VisibleIdentifier] >>> ***/
1798
Lev Walkina7591b52014-10-12 18:37:35 -07001799static const int permitted_alphabet_table_1[256] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +00001800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
1802 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
1803 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
1804 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
180527,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
1806 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
180754,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001808};
1809
Lev Walkine8318b82005-03-06 09:29:03 +00001810static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -07001811 const int *table = permitted_alphabet_table_1;
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001812 /* The underlying type is VisibleString */
1813 const VisibleString_t *st = (const VisibleString_t *)sptr;
1814 const uint8_t *ch = st->buf;
1815 const uint8_t *end = ch + st->size;
1816
1817 for(; ch < end; ch++) {
1818 uint8_t cv = *ch;
1819 if(!table[cv]) return -1;
1820 }
1821 return 0;
1822}
1823
Lev Walkine4ca5ce2004-09-15 11:44:13 +00001824
Lev Walkin154aa182004-09-26 13:12:56 +00001825/*** <<< CODE [VisibleIdentifier] >>> ***/
1826
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001827int
Lev Walkin20696a42017-10-17 21:27:33 -07001828VisibleIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001829 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001830 const Identifier_t *st = (const Identifier_t *)sptr;
1831 size_t size;
1832
1833 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001834 ASN__CTFAIL(app_key, td, sptr,
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001835 "%s: value not given (%s:%d)",
1836 td->name, __FILE__, __LINE__);
1837 return -1;
1838 }
1839
1840 size = st->size;
1841
1842 if((size >= 1 && size <= 32)
Lev Walkine8318b82005-03-06 09:29:03 +00001843 && !check_permitted_alphabet_1(st)) {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001844 /* Constraint check succeeded */
1845 return 0;
1846 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001847 ASN__CTFAIL(app_key, td, sptr,
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001848 "%s: constraint failed (%s:%d)",
1849 td->name, __FILE__, __LINE__);
1850 return -1;
1851 }
1852}
1853
1854/*
1855 * This type is implemented using Identifier,
1856 * so here we adjust the DEF accordingly.
1857 */
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001858
1859/*** <<< STAT-DEFS [VisibleIdentifier] >>> ***/
1860
Lev Walkina7591b52014-10-12 18:37:35 -07001861static const ber_tlv_tag_t asn_DEF_VisibleIdentifier_tags_1[] = {
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001862 (ASN_TAG_CLASS_UNIVERSAL | (26 << 2))
1863};
1864asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier = {
1865 "VisibleIdentifier",
1866 "VisibleIdentifier",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08001867 &asn_OP_VisibleString,
Lev Walkin59b176e2005-11-26 11:25:14 +00001868 asn_DEF_VisibleIdentifier_tags_1,
1869 sizeof(asn_DEF_VisibleIdentifier_tags_1)
1870 /sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
1871 asn_DEF_VisibleIdentifier_tags_1, /* Same as above */
1872 sizeof(asn_DEF_VisibleIdentifier_tags_1)
1873 /sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07001874 { 0, 0, VisibleIdentifier_constraint },
Lev Walkincaf0d5a2005-03-04 23:48:19 +00001875 0, 0, /* No members */
1876 0 /* No specifics */
1877};
Lev Walkin154aa182004-09-26 13:12:56 +00001878
1879
Lev Walkin59b176e2005-11-26 11:25:14 +00001880/*** <<< INCLUDES [Sequence] >>> ***/
1881
Lev Walkin22b5ed42006-09-13 02:51:20 +00001882#include "Int1.h"
1883#include "Int4.h"
Lev Walkin59b176e2005-11-26 11:25:14 +00001884#include <BOOLEAN.h>
1885#include <ENUMERATED.h>
1886#include <NULL.h>
Lev Walkin22b5ed42006-09-13 02:51:20 +00001887#include "Int5.h"
Lev Walkin59b176e2005-11-26 11:25:14 +00001888#include <constr_SEQUENCE.h>
1889
1890/*** <<< DEPS [Sequence] >>> ***/
1891
1892typedef enum enum_c {
1893 enum_c_one = 1,
1894 enum_c_two = 2,
1895 /*
1896 * Enumeration is extensible
1897 */
1898 enum_c_three = 3
Lev Walkin171487e2006-03-21 07:25:18 +00001899} e_enum_c;
Lev Walkin59b176e2005-11-26 11:25:14 +00001900
1901/*** <<< TYPE-DECLS [Sequence] >>> ***/
1902
1903typedef struct Sequence {
1904 Int1_t *int1_c /* DEFAULT 3 */;
1905 Int4_t int4;
1906 Int4_t int4_c;
Lev Walkin2a744a72013-03-27 01:56:23 -07001907 BOOLEAN_t *Bool /* DEFAULT 1 */;
Lev Walkin59b176e2005-11-26 11:25:14 +00001908 ENUMERATED_t enum_c;
1909 NULL_t *null /* OPTIONAL */;
1910 /*
1911 * This type is extensible,
1912 * possible extensions are below.
1913 */
1914 Int5_t *int5_c /* OPTIONAL */;
1915
1916 /* Context for parsing across buffer boundaries */
1917 asn_struct_ctx_t _asn_ctx;
1918} Sequence_t;
1919
1920/*** <<< FUNC-DECLS [Sequence] >>> ***/
1921
1922/* extern asn_TYPE_descriptor_t asn_DEF_enum_c_6; // (Use -fall-defs-global to expose) */
1923extern asn_TYPE_descriptor_t asn_DEF_Sequence;
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08001924extern asn_SEQUENCE_specifics_t asn_SPC_Sequence_specs_1;
1925extern asn_TYPE_member_t asn_MBR_Sequence_1[7];
Lev Walkin59b176e2005-11-26 11:25:14 +00001926
1927/*** <<< CODE [Sequence] >>> ***/
1928
Lev Walkin59b176e2005-11-26 11:25:14 +00001929/*
1930 * This type is implemented using ENUMERATED,
1931 * so here we adjust the DEF accordingly.
1932 */
Lev Walkin59b176e2005-11-26 11:25:14 +00001933static int
Lev Walkin20696a42017-10-17 21:27:33 -07001934memb_int1_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001935 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00001936 const Int1_t *st = (const Int1_t *)sptr;
1937 long value;
1938
1939 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001940 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00001941 "%s: value not given (%s:%d)",
1942 td->name, __FILE__, __LINE__);
1943 return -1;
1944 }
1945
1946 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001947 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00001948 "%s: value too large (%s:%d)",
1949 td->name, __FILE__, __LINE__);
1950 return -1;
1951 }
1952
1953 if((value >= -2)) {
1954 /* Constraint check succeeded */
1955 return 0;
1956 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001957 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00001958 "%s: constraint failed (%s:%d)",
1959 td->name, __FILE__, __LINE__);
1960 return -1;
1961 }
1962}
1963
1964static int
Lev Walkin20696a42017-10-17 21:27:33 -07001965memb_int4_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001966 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00001967 const Int4_t *st = (const Int4_t *)sptr;
1968 long value;
1969
1970 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001971 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00001972 "%s: value not given (%s:%d)",
1973 td->name, __FILE__, __LINE__);
1974 return -1;
1975 }
1976
1977 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001978 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00001979 "%s: value too large (%s:%d)",
1980 td->name, __FILE__, __LINE__);
1981 return -1;
1982 }
1983
1984 if((value >= 5 && value <= 7)) {
1985 /* Constraint check succeeded */
1986 return 0;
1987 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07001988 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00001989 "%s: constraint failed (%s:%d)",
1990 td->name, __FILE__, __LINE__);
1991 return -1;
1992 }
1993}
1994
1995static int
Lev Walkin20696a42017-10-17 21:27:33 -07001996memb_int5_c_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00001997 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00001998 const Int5_t *st = (const Int5_t *)sptr;
1999 long value;
2000
2001 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002002 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002003 "%s: value not given (%s:%d)",
2004 td->name, __FILE__, __LINE__);
2005 return -1;
2006 }
2007
2008 if(asn_INTEGER2long(st, &value)) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002009 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002010 "%s: value too large (%s:%d)",
2011 td->name, __FILE__, __LINE__);
2012 return -1;
2013 }
2014
2015 if((value == 5)) {
2016 /* Constraint check succeeded */
2017 return 0;
2018 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002019 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002020 "%s: constraint failed (%s:%d)",
2021 td->name, __FILE__, __LINE__);
2022 return -1;
2023 }
2024}
2025
2026
2027/*** <<< STAT-DEFS [Sequence] >>> ***/
2028
Lev Walkin20696a42017-10-17 21:27:33 -07002029static int asn_DFL_2_cmp_3(const void *sptr) {
2030 const Int1_t *st = sptr;
2031
2032 if(!st) {
2033 return -1; /* No value is not a default value */
2034 }
2035
2036 /* Test default value 3 */
2037 long value;
2038 if(asn_INTEGER2long(st, &value))
2039 return -1;
2040 return (value != 3);
2041}
2042static int asn_DFL_2_set_3(void **sptr) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002043 Int1_t *st = *sptr;
2044
2045 if(!st) {
2046 st = (*sptr = CALLOC(1, sizeof(*st)));
2047 if(!st) return -1;
2048 }
2049
Lev Walkin20696a42017-10-17 21:27:33 -07002050 /* Install default value 3 */
2051 return asn_long2INTEGER(st, 3);
Lev Walkin59b176e2005-11-26 11:25:14 +00002052}
Lev Walkin20696a42017-10-17 21:27:33 -07002053static int asn_DFL_5_cmp_1(const void *sptr) {
2054 const BOOLEAN_t *st = sptr;
2055
2056 if(!st) {
2057 return -1; /* No value is not a default value */
2058 }
2059
2060 /* Test default value 1 */
2061 return (*st != 1);
2062}
2063static int asn_DFL_5_set_1(void **sptr) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002064 BOOLEAN_t *st = *sptr;
2065
2066 if(!st) {
2067 st = (*sptr = CALLOC(1, sizeof(*st)));
2068 if(!st) return -1;
2069 }
2070
Lev Walkin20696a42017-10-17 21:27:33 -07002071 /* Install default value 1 */
2072 *st = 1;
2073 return 0;
Lev Walkin59b176e2005-11-26 11:25:14 +00002074}
Lev Walkina7591b52014-10-12 18:37:35 -07002075static const asn_INTEGER_enum_map_t asn_MAP_enum_c_value2enum_6[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002076 { 1, 3, "one" },
2077 { 2, 3, "two" },
2078 { 3, 5, "three" }
2079 /* This list is extensible */
2080};
Lev Walkina7591b52014-10-12 18:37:35 -07002081static const unsigned int asn_MAP_enum_c_enum2value_6[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002082 0, /* one(1) */
2083 2, /* three(3) */
2084 1 /* two(2) */
2085 /* This list is extensible */
2086};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002087static const asn_INTEGER_specifics_t asn_SPC_enum_c_specs_6 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002088 asn_MAP_enum_c_value2enum_6, /* "tag" => N; sorted by tag */
2089 asn_MAP_enum_c_enum2value_6, /* N => "tag"; sorted by N */
2090 3, /* Number of elements in the maps */
2091 3, /* Extensions before this member */
Lev Walkin8bb57a22007-12-03 13:41:36 +00002092 1, /* Strict enumeration */
2093 0, /* Native long size */
2094 0
Lev Walkin59b176e2005-11-26 11:25:14 +00002095};
Lev Walkina7591b52014-10-12 18:37:35 -07002096static const ber_tlv_tag_t asn_DEF_enum_c_tags_6[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002097 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
2098};
2099static /* Use -fall-defs-global to expose */
2100asn_TYPE_descriptor_t asn_DEF_enum_c_6 = {
2101 "enum-c",
2102 "enum-c",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08002103 &asn_OP_ENUMERATED,
Lev Walkin59b176e2005-11-26 11:25:14 +00002104 asn_DEF_enum_c_tags_6,
2105 sizeof(asn_DEF_enum_c_tags_6)
2106 /sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
2107 asn_DEF_enum_c_tags_6, /* Same as above */
2108 sizeof(asn_DEF_enum_c_tags_6)
2109 /sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07002110 { 0, 0, ENUMERATED_constraint },
Lev Walkin59b176e2005-11-26 11:25:14 +00002111 0, 0, /* Defined elsewhere */
2112 &asn_SPC_enum_c_specs_6 /* Additional specs */
2113};
2114
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002115asn_TYPE_member_t asn_MBR_Sequence_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002116 { ATF_POINTER, 1, offsetof(struct Sequence, int1_c),
2117 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
2118 .tag_mode = 0,
2119 .type = &asn_DEF_Int1,
Lev Walkin67a30122017-08-10 05:48:54 -07002120 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002121 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_int1_c_constraint_1 },
Lev Walkin20696a42017-10-17 21:27:33 -07002122 .default_value_cmp = asn_DFL_2_cmp_3, /* Compare DEFAULT 3 */
2123 .default_value_set = asn_DFL_2_set_3, /* Set DEFAULT 3 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002124 .name = "int1-c"
2125 },
2126 { ATF_NOFLAGS, 0, offsetof(struct Sequence, int4),
2127 .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
2128 .tag_mode = +1, /* EXPLICIT tag at current level */
2129 .type = &asn_DEF_Int4,
Lev Walkin67a30122017-08-10 05:48:54 -07002130 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002131 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin20696a42017-10-17 21:27:33 -07002132 0, 0, /* No default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002133 .name = "int4"
2134 },
2135 { ATF_NOFLAGS, 0, offsetof(struct Sequence, int4_c),
2136 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
2137 .tag_mode = 0,
2138 .type = &asn_DEF_Int4,
Lev Walkin67a30122017-08-10 05:48:54 -07002139 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002140 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_int4_c_constraint_1 },
Lev Walkin20696a42017-10-17 21:27:33 -07002141 0, 0, /* No default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002142 .name = "int4-c"
2143 },
Lev Walkin2a744a72013-03-27 01:56:23 -07002144 { ATF_POINTER, 1, offsetof(struct Sequence, Bool),
Lev Walkin59b176e2005-11-26 11:25:14 +00002145 .tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
2146 .tag_mode = 0,
2147 .type = &asn_DEF_BOOLEAN,
Lev Walkin67a30122017-08-10 05:48:54 -07002148 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002149 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin20696a42017-10-17 21:27:33 -07002150 .default_value_cmp = asn_DFL_5_cmp_1, /* Compare DEFAULT 1 */
2151 .default_value_set = asn_DFL_5_set_1, /* Set DEFAULT 1 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002152 .name = "bool"
2153 },
2154 { ATF_NOFLAGS, 0, offsetof(struct Sequence, enum_c),
2155 .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
2156 .tag_mode = 0,
2157 .type = &asn_DEF_enum_c_6,
Lev Walkin67a30122017-08-10 05:48:54 -07002158 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002159 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin20696a42017-10-17 21:27:33 -07002160 0, 0, /* No default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002161 .name = "enum-c"
2162 },
2163 { ATF_POINTER, 2, offsetof(struct Sequence, null),
2164 .tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
2165 .tag_mode = 0,
2166 .type = &asn_DEF_NULL,
Lev Walkin67a30122017-08-10 05:48:54 -07002167 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002168 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin20696a42017-10-17 21:27:33 -07002169 0, 0, /* No default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002170 .name = "null"
2171 },
2172 { ATF_POINTER, 1, offsetof(struct Sequence, int5_c),
2173 .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
2174 .tag_mode = 0,
2175 .type = &asn_DEF_Int5,
Lev Walkin67a30122017-08-10 05:48:54 -07002176 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002177 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = memb_int5_c_constraint_1 },
Lev Walkin20696a42017-10-17 21:27:33 -07002178 0, 0, /* No default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002179 .name = "int5-c"
2180 },
2181};
Lev Walkina7591b52014-10-12 18:37:35 -07002182static const ber_tlv_tag_t asn_DEF_Sequence_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002183 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
2184};
Lev Walkina7591b52014-10-12 18:37:35 -07002185static const asn_TYPE_tag2member_t asn_MAP_Sequence_tag2el_1[] = {
Lev Walkin4062b012013-10-11 14:29:38 -07002186 { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 3, 0, 0 }, /* bool */
2187 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* int1-c */
2188 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* int4-c */
2189 { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* int5-c */
2190 { (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)), 5, 0, 0 }, /* null */
2191 { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* enum-c */
2192 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 } /* int4 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002193};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002194asn_SEQUENCE_specifics_t asn_SPC_Sequence_specs_1 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002195 sizeof(struct Sequence),
2196 offsetof(struct Sequence, _asn_ctx),
Lev Walkine3917082017-08-23 10:29:38 -07002197 .tag2el = asn_MAP_Sequence_tag2el_1,
2198 .tag2el_count = 7, /* Count of tags in the map */
Lev Walkin59b176e2005-11-26 11:25:14 +00002199 0, 0, 0, /* Optional elements (not needed) */
2200 5, /* Start extensions */
2201 8 /* Stop extensions */
2202};
2203asn_TYPE_descriptor_t asn_DEF_Sequence = {
2204 "Sequence",
2205 "Sequence",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08002206 &asn_OP_SEQUENCE,
Lev Walkin59b176e2005-11-26 11:25:14 +00002207 asn_DEF_Sequence_tags_1,
2208 sizeof(asn_DEF_Sequence_tags_1)
2209 /sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
2210 asn_DEF_Sequence_tags_1, /* Same as above */
2211 sizeof(asn_DEF_Sequence_tags_1)
2212 /sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07002213 { 0, 0, SEQUENCE_constraint },
Lev Walkin59b176e2005-11-26 11:25:14 +00002214 asn_MBR_Sequence_1,
2215 7, /* Elements count */
2216 &asn_SPC_Sequence_specs_1 /* Additional specs */
2217};
2218
2219
2220/*** <<< INCLUDES [SequenceOf] >>> ***/
2221
2222#include <asn_SEQUENCE_OF.h>
2223#include <constr_SEQUENCE_OF.h>
2224
2225/*** <<< FWD-DECLS [SequenceOf] >>> ***/
2226
2227struct Sequence;
2228
2229/*** <<< TYPE-DECLS [SequenceOf] >>> ***/
2230
2231typedef struct SequenceOf {
2232 A_SEQUENCE_OF(struct Sequence) list;
2233
2234 /* Context for parsing across buffer boundaries */
2235 asn_struct_ctx_t _asn_ctx;
2236} SequenceOf_t;
2237
2238/*** <<< FUNC-DECLS [SequenceOf] >>> ***/
2239
2240extern asn_TYPE_descriptor_t asn_DEF_SequenceOf;
2241
2242/*** <<< POST-INCLUDE [SequenceOf] >>> ***/
2243
Lev Walkin22b5ed42006-09-13 02:51:20 +00002244#include "Sequence.h"
Lev Walkin59b176e2005-11-26 11:25:14 +00002245
2246/*** <<< STAT-DEFS [SequenceOf] >>> ***/
2247
2248static asn_TYPE_member_t asn_MBR_SequenceOf_1[] = {
2249 { ATF_POINTER, 0, 0,
2250 .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
2251 .tag_mode = 0,
2252 .type = &asn_DEF_Sequence,
Lev Walkin67a30122017-08-10 05:48:54 -07002253 .type_selector = 0,
Lev Walkin0bfea562017-09-29 23:16:48 -07002254 { .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
Lev Walkin20696a42017-10-17 21:27:33 -07002255 0, 0, /* No default value */
Lev Walkin59b176e2005-11-26 11:25:14 +00002256 .name = ""
2257 },
2258};
Lev Walkina7591b52014-10-12 18:37:35 -07002259static const ber_tlv_tag_t asn_DEF_SequenceOf_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002260 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
2261};
2262static asn_SET_OF_specifics_t asn_SPC_SequenceOf_specs_1 = {
2263 sizeof(struct SequenceOf),
2264 offsetof(struct SequenceOf, _asn_ctx),
2265 0, /* XER encoding is XMLDelimitedItemList */
2266};
2267asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
2268 "SequenceOf",
2269 "SequenceOf",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08002270 &asn_OP_SEQUENCE_OF,
Lev Walkin59b176e2005-11-26 11:25:14 +00002271 asn_DEF_SequenceOf_tags_1,
2272 sizeof(asn_DEF_SequenceOf_tags_1)
2273 /sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
2274 asn_DEF_SequenceOf_tags_1, /* Same as above */
2275 sizeof(asn_DEF_SequenceOf_tags_1)
2276 /sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07002277 { 0, 0, SEQUENCE_OF_constraint },
Lev Walkin59b176e2005-11-26 11:25:14 +00002278 asn_MBR_SequenceOf_1,
2279 1, /* Single element */
2280 &asn_SPC_SequenceOf_specs_1 /* Additional specs */
2281};
2282
2283
2284/*** <<< INCLUDES [Enum0] >>> ***/
2285
2286#include <ENUMERATED.h>
2287
2288/*** <<< DEPS [Enum0] >>> ***/
2289
2290typedef enum Enum0 {
2291 Enum0_one = 0,
2292 Enum0_two = 1
Lev Walkin171487e2006-03-21 07:25:18 +00002293} e_Enum0;
Lev Walkin59b176e2005-11-26 11:25:14 +00002294
2295/*** <<< TYPE-DECLS [Enum0] >>> ***/
2296
2297typedef ENUMERATED_t Enum0_t;
2298
2299/*** <<< FUNC-DECLS [Enum0] >>> ***/
2300
2301extern asn_TYPE_descriptor_t asn_DEF_Enum0;
2302asn_struct_free_f Enum0_free;
2303asn_struct_print_f Enum0_print;
2304asn_constr_check_f Enum0_constraint;
2305ber_type_decoder_f Enum0_decode_ber;
2306der_type_encoder_f Enum0_encode_der;
2307xer_type_decoder_f Enum0_decode_xer;
2308xer_type_encoder_f Enum0_encode_xer;
2309
2310/*** <<< CODE [Enum0] >>> ***/
2311
Lev Walkin59b176e2005-11-26 11:25:14 +00002312/*
2313 * This type is implemented using ENUMERATED,
2314 * so here we adjust the DEF accordingly.
2315 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002316
2317/*** <<< STAT-DEFS [Enum0] >>> ***/
2318
Lev Walkina7591b52014-10-12 18:37:35 -07002319static const asn_INTEGER_enum_map_t asn_MAP_Enum0_value2enum_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002320 { 0, 3, "one" },
2321 { 1, 3, "two" }
2322};
Lev Walkina7591b52014-10-12 18:37:35 -07002323static const unsigned int asn_MAP_Enum0_enum2value_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002324 0, /* one(0) */
2325 1 /* two(1) */
2326};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002327static const asn_INTEGER_specifics_t asn_SPC_Enum0_specs_1 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002328 asn_MAP_Enum0_value2enum_1, /* "tag" => N; sorted by tag */
2329 asn_MAP_Enum0_enum2value_1, /* N => "tag"; sorted by N */
2330 2, /* Number of elements in the maps */
2331 0, /* Enumeration is not extensible */
Lev Walkin8bb57a22007-12-03 13:41:36 +00002332 1, /* Strict enumeration */
2333 0, /* Native long size */
2334 0
Lev Walkin59b176e2005-11-26 11:25:14 +00002335};
Lev Walkina7591b52014-10-12 18:37:35 -07002336static const ber_tlv_tag_t asn_DEF_Enum0_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002337 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
2338};
2339asn_TYPE_descriptor_t asn_DEF_Enum0 = {
2340 "Enum0",
2341 "Enum0",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08002342 &asn_OP_ENUMERATED,
Lev Walkin59b176e2005-11-26 11:25:14 +00002343 asn_DEF_Enum0_tags_1,
2344 sizeof(asn_DEF_Enum0_tags_1)
2345 /sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
2346 asn_DEF_Enum0_tags_1, /* Same as above */
2347 sizeof(asn_DEF_Enum0_tags_1)
2348 /sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07002349 { 0, 0, ENUMERATED_constraint },
Lev Walkin59b176e2005-11-26 11:25:14 +00002350 0, 0, /* Defined elsewhere */
2351 &asn_SPC_Enum0_specs_1 /* Additional specs */
2352};
2353
2354
2355/*** <<< INCLUDES [Enum1] >>> ***/
2356
2357#include <NativeEnumerated.h>
2358
2359/*** <<< DEPS [Enum1] >>> ***/
2360
2361typedef enum Enum1 {
2362 Enum1_one = 0,
2363 Enum1_two = 1
Lev Walkin171487e2006-03-21 07:25:18 +00002364} e_Enum1;
Lev Walkin59b176e2005-11-26 11:25:14 +00002365
2366/*** <<< TYPE-DECLS [Enum1] >>> ***/
2367
2368typedef long Enum1_t;
2369
2370/*** <<< FUNC-DECLS [Enum1] >>> ***/
2371
2372extern asn_TYPE_descriptor_t asn_DEF_Enum1;
2373asn_struct_free_f Enum1_free;
2374asn_struct_print_f Enum1_print;
2375asn_constr_check_f Enum1_constraint;
2376ber_type_decoder_f Enum1_decode_ber;
2377der_type_encoder_f Enum1_encode_der;
2378xer_type_decoder_f Enum1_decode_xer;
2379xer_type_encoder_f Enum1_encode_xer;
2380
2381/*** <<< CODE [Enum1] >>> ***/
2382
2383int
Lev Walkin20696a42017-10-17 21:27:33 -07002384Enum1_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002385 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin59b176e2005-11-26 11:25:14 +00002386 long value;
2387
2388 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002389 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002390 "%s: value not given (%s:%d)",
2391 td->name, __FILE__, __LINE__);
2392 return -1;
2393 }
2394
2395 value = *(const long *)sptr;
2396
2397 if((value == 0)) {
2398 /* Constraint check succeeded */
2399 return 0;
2400 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002401 ASN__CTFAIL(app_key, td, sptr,
Lev Walkin59b176e2005-11-26 11:25:14 +00002402 "%s: constraint failed (%s:%d)",
2403 td->name, __FILE__, __LINE__);
2404 return -1;
2405 }
2406}
2407
2408/*
2409 * This type is implemented using NativeEnumerated,
2410 * so here we adjust the DEF accordingly.
2411 */
Lev Walkin59b176e2005-11-26 11:25:14 +00002412
2413/*** <<< STAT-DEFS [Enum1] >>> ***/
2414
Lev Walkina7591b52014-10-12 18:37:35 -07002415static const asn_INTEGER_enum_map_t asn_MAP_Enum1_value2enum_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002416 { 0, 3, "one" },
2417 { 1, 3, "two" }
2418};
Lev Walkina7591b52014-10-12 18:37:35 -07002419static const unsigned int asn_MAP_Enum1_enum2value_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002420 0, /* one(0) */
2421 1 /* two(1) */
2422};
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +08002423static const asn_INTEGER_specifics_t asn_SPC_Enum1_specs_1 = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002424 asn_MAP_Enum1_value2enum_1, /* "tag" => N; sorted by tag */
2425 asn_MAP_Enum1_enum2value_1, /* N => "tag"; sorted by N */
2426 2, /* Number of elements in the maps */
2427 0, /* Enumeration is not extensible */
Lev Walkin8bb57a22007-12-03 13:41:36 +00002428 1, /* Strict enumeration */
2429 0, /* Native long size */
2430 0
Lev Walkin59b176e2005-11-26 11:25:14 +00002431};
Lev Walkina7591b52014-10-12 18:37:35 -07002432static const ber_tlv_tag_t asn_DEF_Enum1_tags_1[] = {
Lev Walkin59b176e2005-11-26 11:25:14 +00002433 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
2434};
2435asn_TYPE_descriptor_t asn_DEF_Enum1 = {
2436 "Enum1",
2437 "Enum1",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08002438 &asn_OP_NativeEnumerated,
Lev Walkin59b176e2005-11-26 11:25:14 +00002439 asn_DEF_Enum1_tags_1,
2440 sizeof(asn_DEF_Enum1_tags_1)
2441 /sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
2442 asn_DEF_Enum1_tags_1, /* Same as above */
2443 sizeof(asn_DEF_Enum1_tags_1)
2444 /sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07002445 { 0, 0, Enum1_constraint },
Lev Walkin59b176e2005-11-26 11:25:14 +00002446 0, 0, /* Defined elsewhere */
2447 &asn_SPC_Enum1_specs_1 /* Additional specs */
2448};
2449
2450
Lev Walkin154aa182004-09-26 13:12:56 +00002451/*** <<< INCLUDES [Identifier] >>> ***/
2452
2453#include <VisibleString.h>
2454
2455/*** <<< TYPE-DECLS [Identifier] >>> ***/
2456
Lev Walkin154aa182004-09-26 13:12:56 +00002457typedef VisibleString_t Identifier_t;
2458
2459/*** <<< FUNC-DECLS [Identifier] >>> ***/
2460
Lev Walkindfae9752004-09-29 13:19:37 +00002461extern asn_TYPE_descriptor_t asn_DEF_Identifier;
Lev Walkin154aa182004-09-26 13:12:56 +00002462asn_struct_free_f Identifier_free;
2463asn_struct_print_f Identifier_print;
2464asn_constr_check_f Identifier_constraint;
2465ber_type_decoder_f Identifier_decode_ber;
2466der_type_encoder_f Identifier_encode_der;
Lev Walkin0ebe8b32004-10-23 13:26:56 +00002467xer_type_decoder_f Identifier_decode_xer;
Lev Walkin154aa182004-09-26 13:12:56 +00002468xer_type_encoder_f Identifier_encode_xer;
2469
2470/*** <<< CTABLES [Identifier] >>> ***/
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002471
Lev Walkina7591b52014-10-12 18:37:35 -07002472static const int permitted_alphabet_table_1[256] = {
Lev Walkin5b62ca82006-09-21 01:52:07 +00002473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
2475 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
2476 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
2477 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
247827,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
2479 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
248054,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002481};
2482
Lev Walkine8318b82005-03-06 09:29:03 +00002483static int check_permitted_alphabet_1(const void *sptr) {
Lev Walkina7591b52014-10-12 18:37:35 -07002484 const int *table = permitted_alphabet_table_1;
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002485 /* The underlying type is VisibleString */
Lev Walkin8a7af0e2005-02-15 03:40:07 +00002486 const VisibleString_t *st = (const VisibleString_t *)sptr;
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002487 const uint8_t *ch = st->buf;
2488 const uint8_t *end = ch + st->size;
2489
2490 for(; ch < end; ch++) {
2491 uint8_t cv = *ch;
2492 if(!table[cv]) return -1;
2493 }
2494 return 0;
2495}
2496
2497
Lev Walkin154aa182004-09-26 13:12:56 +00002498/*** <<< CODE [Identifier] >>> ***/
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002499
2500int
Lev Walkin20696a42017-10-17 21:27:33 -07002501Identifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
Lev Walkin1eded352006-07-13 11:19:01 +00002502 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
Lev Walkin8a7af0e2005-02-15 03:40:07 +00002503 const VisibleString_t *st = (const VisibleString_t *)sptr;
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002504 size_t size;
2505
2506 if(!sptr) {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002507 ASN__CTFAIL(app_key, td, sptr,
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002508 "%s: value not given (%s:%d)",
2509 td->name, __FILE__, __LINE__);
2510 return -1;
2511 }
2512
2513 size = st->size;
2514
2515 if((size >= 1 && size <= 32)
Lev Walkine8318b82005-03-06 09:29:03 +00002516 && !check_permitted_alphabet_1(st)) {
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002517 /* Constraint check succeeded */
2518 return 0;
2519 } else {
Lev Walkin7c1dc052016-03-14 03:08:15 -07002520 ASN__CTFAIL(app_key, td, sptr,
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002521 "%s: constraint failed (%s:%d)",
2522 td->name, __FILE__, __LINE__);
2523 return -1;
2524 }
2525}
2526
2527/*
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002528 * This type is implemented using VisibleString,
Lev Walkinc3808c12004-09-23 22:14:58 +00002529 * so here we adjust the DEF accordingly.
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002530 */
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002531
2532/*** <<< STAT-DEFS [Identifier] >>> ***/
2533
Lev Walkina7591b52014-10-12 18:37:35 -07002534static const ber_tlv_tag_t asn_DEF_Identifier_tags_1[] = {
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002535 (ASN_TAG_CLASS_UNIVERSAL | (26 << 2))
2536};
Lev Walkindfae9752004-09-29 13:19:37 +00002537asn_TYPE_descriptor_t asn_DEF_Identifier = {
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002538 "Identifier",
Lev Walkindc06f6b2004-10-20 15:50:55 +00002539 "Identifier",
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +08002540 &asn_OP_VisibleString,
Lev Walkin59b176e2005-11-26 11:25:14 +00002541 asn_DEF_Identifier_tags_1,
2542 sizeof(asn_DEF_Identifier_tags_1)
2543 /sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */
2544 asn_DEF_Identifier_tags_1, /* Same as above */
2545 sizeof(asn_DEF_Identifier_tags_1)
2546 /sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */
Lev Walkin0bfea562017-09-29 23:16:48 -07002547 { 0, 0, Identifier_constraint },
Lev Walkine4ca5ce2004-09-15 11:44:13 +00002548 0, 0, /* No members */
2549 0 /* No specifics */
2550};
2551