aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/118-per-constraint-OK.asn116
-rw-r--r--tests/118-per-constraint-OK.asn1.-EFprint-constraints11
-rw-r--r--tests/19-param-OK.asn1.-P16
-rw-r--r--tests/50-constraint-OK.asn1.-P62
-rw-r--r--tests/50-constraint-OK.asn1.-Pgen-PER103
5 files changed, 129 insertions, 79 deletions
diff --git a/tests/118-per-constraint-OK.asn1 b/tests/118-per-constraint-OK.asn1
new file mode 100644
index 00000000..d7c840b6
--- /dev/null
+++ b/tests/118-per-constraint-OK.asn1
@@ -0,0 +1,16 @@
+
+-- OK: Everything is fine
+
+-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
+-- .spelio.software.asn1c.test (9363.1.5.1)
+-- .118
+
+ModuleConstraintPrecedence
+ { iso org(3) dod(6) internet (1) private(4) enterprise(1)
+ spelio(9363) software(1) asn1c(5) test(1) 118 }
+ DEFINITIONS ::=
+BEGIN
+
+ C ::= IA5String (SIZE(10) ^ FROM("A".."D") | SIZE(20) ^ FROM("D".."F"))
+
+END
diff --git a/tests/118-per-constraint-OK.asn1.-EFprint-constraints b/tests/118-per-constraint-OK.asn1.-EFprint-constraints
new file mode 100644
index 00000000..cd9d33e8
--- /dev/null
+++ b/tests/118-per-constraint-OK.asn1.-EFprint-constraints
@@ -0,0 +1,11 @@
+ModuleConstraintPrecedence { iso org(3) dod(6) internet(1) private(4)
+ enterprise(1) spelio(9363) software(1) asn1c(5) test(1) 118 }
+DEFINITIONS ::=
+BEGIN
+
+C ::= IA5String (SIZE(10) ^ FROM("A".."D") | SIZE(20) ^ FROM("D".."F"))
+-- Combined constraints: (SIZE(10) ^ FROM("A".."D") | SIZE(20) ^ FROM("D".."F"))
+-- Practical constraints (C): (MIN..MAX) (SIZE(10 | 20)) (FROM("A".."F"))
+-- PER-visible constraints (C): (MIN..MAX) (SIZE(10 | 20)) (FROM("A".."F"))
+
+END
diff --git a/tests/19-param-OK.asn1.-P b/tests/19-param-OK.asn1.-P
index 24b1313e..eedbc1bf 100644
--- a/tests/19-param-OK.asn1.-P
+++ b/tests/19-param-OK.asn1.-P
@@ -425,14 +425,14 @@ extern asn_TYPE_descriptor_t asn_DEF_RelativeDistinguishedName;
/*** <<< CTABLES [RelativeDistinguishedName] >>> ***/
static int permitted_alphabet_table_2[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0, /* ,-. */
-1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, /* 0 9 */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* PQRSTUVWXYZ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, /* ,-. */
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, /* 0 9 */
+ 0, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20, /* ABCDEFGHIJKLMNO */
+21,22,23,24,25,26,27,28,29,30,31, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */
+ 0,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46, /* abcdefghijklmno */
+47,48,49,50,51,52,53,54,55,56,57, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
static int check_permitted_alphabet_2(const void *sptr) {
diff --git a/tests/50-constraint-OK.asn1.-P b/tests/50-constraint-OK.asn1.-P
index 3cdcb3b7..67923076 100644
--- a/tests/50-constraint-OK.asn1.-P
+++ b/tests/50-constraint-OK.asn1.-P
@@ -1159,13 +1159,13 @@ xer_type_encoder_f Str3_encode_xer;
/*** <<< CTABLES [Str3] >>> ***/
static int permitted_alphabet_table_1[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, /* ABC */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0, /* def */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* ABC */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* def */
};
static int check_permitted_alphabet_1(const void *sptr) {
@@ -2889,14 +2889,14 @@ xer_type_encoder_f Utf8_3_encode_xer;
/*** <<< CTABLES [Utf8-3] >>> ***/
static int permitted_alphabet_table_1[128] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* PQRSTUVWXYZ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, /* ABCDEFGHIJKLMNO */
+16,17,18,19,20,21,22,23,24,25,26, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */
+ 0,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41, /* abcdefghijklmno */
+42,43,44,45,46,47,48,49,50,51,52, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
static int check_permitted_alphabet_1(const void *sptr) {
@@ -3339,14 +3339,14 @@ xer_type_encoder_f VisibleIdentifier_encode_xer;
/*** <<< CTABLES [VisibleIdentifier] >>> ***/
static int permitted_alphabet_table_1[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, /* $ */
-1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789 */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ _ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
+ 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
+ 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
+27,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
+ 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
+54,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
static int check_permitted_alphabet_1(const void *sptr) {
@@ -4302,14 +4302,14 @@ xer_type_encoder_f Identifier_encode_xer;
/*** <<< CTABLES [Identifier] >>> ***/
static int permitted_alphabet_table_1[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, /* $ */
-1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789 */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ _ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
+ 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
+ 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
+27,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
+ 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
+54,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
static int check_permitted_alphabet_1(const void *sptr) {
diff --git a/tests/50-constraint-OK.asn1.-Pgen-PER b/tests/50-constraint-OK.asn1.-Pgen-PER
index 0112a2ca..3e2911df 100644
--- a/tests/50-constraint-OK.asn1.-Pgen-PER
+++ b/tests/50-constraint-OK.asn1.-Pgen-PER
@@ -1277,7 +1277,7 @@ static ber_tlv_tag_t asn_DEF_Str2_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_Str2_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */,
{ APC_CONSTRAINED, 5, 5, 0, 30 } /* (SIZE(0..30)) */
};
asn_TYPE_descriptor_t asn_DEF_Str2 = {
@@ -1329,14 +1329,17 @@ per_type_encoder_f Str3_encode_uper;
/*** <<< CTABLES [Str3] >>> ***/
static int permitted_alphabet_table_1[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, /* ABC */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0, /* def */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* ABC */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* def */
};
+static int permitted_alphabet_code2value_1[6] = {
+65,66,67,100,101,102,};
+
static int check_permitted_alphabet_1(const void *sptr) {
int *table = permitted_alphabet_table_1;
@@ -1469,7 +1472,7 @@ static ber_tlv_tag_t asn_DEF_Str3_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_Str3_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 6, 6, 65, 102 } /* (65..102) */,
{ APC_CONSTRAINED, 5, 5, 10, 27 } /* (SIZE(10..27)) */
};
asn_TYPE_descriptor_t asn_DEF_Str3 = {
@@ -1647,7 +1650,7 @@ static ber_tlv_tag_t asn_DEF_Str4_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_Str4_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */,
{ APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */
};
asn_TYPE_descriptor_t asn_DEF_Str4 = {
@@ -1825,7 +1828,7 @@ static ber_tlv_tag_t asn_DEF_PER_Visible_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_PER_Visible_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 3, 3, 65, 70 } /* (65..70) */,
{ APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */
};
asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
@@ -2003,7 +2006,7 @@ static ber_tlv_tag_t asn_DEF_PER_Visible_2_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_PER_Visible_2_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 1, 1, 69, 70 } /* (69..70) */,
{ APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */
};
asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
@@ -2181,7 +2184,7 @@ static ber_tlv_tag_t asn_DEF_Not_PER_Visible_1_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_Not_PER_Visible_1_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 3, 3, 65, 70 } /* (65..70) */,
{ APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */
};
asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
@@ -2899,7 +2902,7 @@ static ber_tlv_tag_t asn_DEF_SIZE_and_FROM_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_SIZE_and_FROM_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 2, 2, 65, 68 } /* (65..68) */,
{ APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */
};
asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
@@ -3077,7 +3080,7 @@ static ber_tlv_tag_t asn_DEF_Neither_SIZE_nor_FROM_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2))
};
static asn_per_constraints_t asn_PER_Neither_SIZE_nor_FROM_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 3, 3, 65, 70 } /* (65..70) */,
{ APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */
};
asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
@@ -3301,15 +3304,21 @@ per_type_encoder_f Utf8_3_encode_uper;
/*** <<< CTABLES [Utf8-3] >>> ***/
static int permitted_alphabet_table_1[128] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* PQRSTUVWXYZ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, /* ABCDEFGHIJKLMNO */
+16,17,18,19,20,21,22,23,24,25,26, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */
+ 0,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41, /* abcdefghijklmno */
+42,43,44,45,46,47,48,49,50,51,52, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
+static int permitted_alphabet_code2value_1[52] = {
+65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
+81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,
+103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,
+119,120,121,122,};
+
static int check_permitted_alphabet_1(const void *sptr) {
int *table = permitted_alphabet_table_1;
@@ -3813,15 +3822,22 @@ per_type_encoder_f VisibleIdentifier_encode_uper;
/*** <<< CTABLES [VisibleIdentifier] >>> ***/
static int permitted_alphabet_table_1[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, /* $ */
-1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789 */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ _ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
+ 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
+ 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
+27,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
+ 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
+54,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
+static int permitted_alphabet_code2value_1[64] = {
+36,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,
+70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
+86,87,88,89,90,95,97,98,99,100,101,102,103,104,105,106,
+107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,
+};
+
static int check_permitted_alphabet_1(const void *sptr) {
int *table = permitted_alphabet_table_1;
@@ -4882,15 +4898,22 @@ per_type_encoder_f Identifier_encode_uper;
/*** <<< CTABLES [Identifier] >>> ***/
static int permitted_alphabet_table_1[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* */
-0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, /* $ */
-1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789 */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ABCDEFGHIJKLMNO */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ _ */
-0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* abcdefghijklmno */
-1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* $ */
+ 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */
+ 0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26, /* ABCDEFGHIJKLMNO */
+27,28,29,30,31,32,33,34,35,36,37, 0, 0, 0, 0,38, /* PQRSTUVWXYZ _ */
+ 0,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, /* abcdefghijklmno */
+54,55,56,57,58,59,60,61,62,63,64, 0, 0, 0, 0, 0, /* pqrstuvwxyz */
};
+static int permitted_alphabet_code2value_1[64] = {
+36,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,
+70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
+86,87,88,89,90,95,97,98,99,100,101,102,103,104,105,106,
+107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,
+};
+
static int check_permitted_alphabet_1(const void *sptr) {
int *table = permitted_alphabet_table_1;
@@ -5023,7 +5046,7 @@ static ber_tlv_tag_t asn_DEF_Identifier_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (26 << 2))
};
static asn_per_constraints_t asn_PER_Identifier_constr_1 = {
- { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 7, 7, 36, 122 } /* (36..122) */,
{ APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */
};
asn_TYPE_descriptor_t asn_DEF_Identifier = {