inner structures tagging fix. see 0.9.5 comment in ChangeLog
diff --git a/tests/19-param-OK.asn1.-P b/tests/19-param-OK.asn1.-P
index bed6a5f..83be07d 100644
--- a/tests/19-param-OK.asn1.-P
+++ b/tests/19-param-OK.asn1.-P
@@ -117,6 +117,9 @@
asn1_DEF_toBeSigned_tags,
sizeof(asn1_DEF_toBeSigned_tags)
/sizeof(asn1_DEF_toBeSigned_tags[0]), /* 1 */
+ asn1_DEF_toBeSigned_tags, /* Same as above */
+ sizeof(asn1_DEF_toBeSigned_tags)
+ /sizeof(asn1_DEF_toBeSigned_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_toBeSigned,
3, /* Elements count */
@@ -173,6 +176,9 @@
asn1_DEF_Certificate_tags,
sizeof(asn1_DEF_Certificate_tags)
/sizeof(asn1_DEF_Certificate_tags[0]), /* 1 */
+ asn1_DEF_Certificate_tags, /* Same as above */
+ sizeof(asn1_DEF_Certificate_tags)
+ /sizeof(asn1_DEF_Certificate_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Certificate,
3, /* Elements count */
@@ -229,6 +235,9 @@
asn1_DEF_Name_tags,
sizeof(asn1_DEF_Name_tags)
/sizeof(asn1_DEF_Name_tags[0]), /* 1 */
+ asn1_DEF_Name_tags, /* Same as above */
+ sizeof(asn1_DEF_Name_tags)
+ /sizeof(asn1_DEF_Name_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Name,
1, /* Single element */
@@ -340,6 +349,9 @@
asn1_DEF_RelativeDistinguishedName_tags,
sizeof(asn1_DEF_RelativeDistinguishedName_tags)
/sizeof(asn1_DEF_RelativeDistinguishedName_tags[0]), /* 1 */
+ asn1_DEF_RelativeDistinguishedName_tags, /* Same as above */
+ sizeof(asn1_DEF_RelativeDistinguishedName_tags)
+ /sizeof(asn1_DEF_RelativeDistinguishedName_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_RelativeDistinguishedName,
1, /* Single element */
diff --git a/tests/25-misc-OK.asn1 b/tests/25-misc-OK.asn1
index 3a7eb91..43487de 100644
--- a/tests/25-misc-OK.asn1
+++ b/tests/25-misc-OK.asn1
@@ -20,9 +20,9 @@
a(1), b(2)
},
e OCTET STRING,
- f OCTET STRING,
+ f [5] VisibleString,
g BIT STRING,
- h BIT STRING,
+ h [7] BIT STRING,
...
}
diff --git a/tests/31-set-of-OK.asn1.-P b/tests/31-set-of-OK.asn1.-P
index e28455a..7728121 100644
--- a/tests/31-set-of-OK.asn1.-P
+++ b/tests/31-set-of-OK.asn1.-P
@@ -48,6 +48,9 @@
asn1_DEF_Forest_tags,
sizeof(asn1_DEF_Forest_tags)
/sizeof(asn1_DEF_Forest_tags[0]), /* 1 */
+ asn1_DEF_Forest_tags, /* Same as above */
+ sizeof(asn1_DEF_Forest_tags)
+ /sizeof(asn1_DEF_Forest_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Forest,
1, /* Single element */
@@ -119,6 +122,9 @@
asn1_DEF_Tree_tags,
sizeof(asn1_DEF_Tree_tags)
/sizeof(asn1_DEF_Tree_tags[0]), /* 1 */
+ asn1_DEF_Tree_tags, /* Same as above */
+ sizeof(asn1_DEF_Tree_tags)
+ /sizeof(asn1_DEF_Tree_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Tree,
2, /* Elements count */
@@ -193,7 +199,8 @@
},
};
static ber_tlv_tag_t asn1_DEF_trees_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (0 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_trees_specs = {
sizeof(struct trees),
@@ -210,7 +217,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_trees_tags,
sizeof(asn1_DEF_trees_tags)
- /sizeof(asn1_DEF_trees_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_trees_tags[0]) - 1, /* 1 */
+ asn1_DEF_trees_tags, /* Same as above */
+ sizeof(asn1_DEF_trees_tags)
+ /sizeof(asn1_DEF_trees_tags[0]), /* 2 */
1, /* Whether CONSTRUCTED */
asn1_MBR_trees,
1, /* Single element */
@@ -252,6 +262,9 @@
asn1_DEF_anything_member_tags,
sizeof(asn1_DEF_anything_member_tags)
/sizeof(asn1_DEF_anything_member_tags[0]), /* 1 */
+ asn1_DEF_anything_member_tags, /* Same as above */
+ sizeof(asn1_DEF_anything_member_tags)
+ /sizeof(asn1_DEF_anything_member_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_anything_member,
1, /* Elements count */
@@ -268,7 +281,8 @@
},
};
static ber_tlv_tag_t asn1_DEF_anything_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (1 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_anything_specs = {
sizeof(struct anything),
@@ -285,7 +299,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_anything_tags,
sizeof(asn1_DEF_anything_tags)
- /sizeof(asn1_DEF_anything_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_anything_tags[0]) - 1, /* 1 */
+ asn1_DEF_anything_tags, /* Same as above */
+ sizeof(asn1_DEF_anything_tags)
+ /sizeof(asn1_DEF_anything_tags[0]), /* 2 */
1, /* Whether CONSTRUCTED */
asn1_MBR_anything,
1, /* Single element */
@@ -338,6 +355,9 @@
asn1_DEF_Stuff_tags,
sizeof(asn1_DEF_Stuff_tags)
/sizeof(asn1_DEF_Stuff_tags[0]), /* 1 */
+ asn1_DEF_Stuff_tags, /* Same as above */
+ sizeof(asn1_DEF_Stuff_tags)
+ /sizeof(asn1_DEF_Stuff_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Stuff,
2, /* Elements count */
diff --git a/tests/39-sequence-of-OK.asn1.-P b/tests/39-sequence-of-OK.asn1.-P
index a1f622b..81ac16d 100644
--- a/tests/39-sequence-of-OK.asn1.-P
+++ b/tests/39-sequence-of-OK.asn1.-P
@@ -57,6 +57,9 @@
asn1_DEF_collection_tags,
sizeof(asn1_DEF_collection_tags)
/sizeof(asn1_DEF_collection_tags[0]), /* 1 */
+ asn1_DEF_collection_tags, /* Same as above */
+ sizeof(asn1_DEF_collection_tags)
+ /sizeof(asn1_DEF_collection_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_collection,
1, /* Single element */
@@ -105,6 +108,9 @@
asn1_DEF_T_tags,
sizeof(asn1_DEF_T_tags)
/sizeof(asn1_DEF_T_tags[0]), /* 1 */
+ asn1_DEF_T_tags, /* Same as above */
+ sizeof(asn1_DEF_T_tags)
+ /sizeof(asn1_DEF_T_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T,
2, /* Elements count */
@@ -177,6 +183,9 @@
asn1_DEF_T2_tags,
sizeof(asn1_DEF_T2_tags)
/sizeof(asn1_DEF_T2_tags[0]), /* 1 */
+ asn1_DEF_T2_tags, /* Same as above */
+ sizeof(asn1_DEF_T2_tags)
+ /sizeof(asn1_DEF_T2_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T2,
2, /* Elements count */
diff --git a/tests/42-real-life-OK.asn1.-PR b/tests/42-real-life-OK.asn1.-PR
index 385dcb9..262bacc 100644
--- a/tests/42-real-life-OK.asn1.-PR
+++ b/tests/42-real-life-OK.asn1.-PR
@@ -93,6 +93,9 @@
asn1_DEF_varsets_tags,
sizeof(asn1_DEF_varsets_tags)
/sizeof(asn1_DEF_varsets_tags[0]), /* 1 */
+ asn1_DEF_varsets_tags, /* Same as above */
+ sizeof(asn1_DEF_varsets_tags)
+ /sizeof(asn1_DEF_varsets_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_varsets,
1, /* Single element */
@@ -141,6 +144,9 @@
asn1_DEF_LogLine_tags,
sizeof(asn1_DEF_LogLine_tags)
/sizeof(asn1_DEF_LogLine_tags[0]), /* 1 */
+ asn1_DEF_LogLine_tags, /* Same as above */
+ sizeof(asn1_DEF_LogLine_tags)
+ /sizeof(asn1_DEF_LogLine_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_LogLine,
2, /* Elements count */
@@ -233,6 +239,9 @@
asn1_DEF_vparts_tags,
sizeof(asn1_DEF_vparts_tags)
/sizeof(asn1_DEF_vparts_tags[0]), /* 1 */
+ asn1_DEF_vparts_tags, /* Same as above */
+ sizeof(asn1_DEF_vparts_tags)
+ /sizeof(asn1_DEF_vparts_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_vparts,
1, /* Single element */
@@ -281,6 +290,9 @@
asn1_DEF_VariablePartSet_tags,
sizeof(asn1_DEF_VariablePartSet_tags)
/sizeof(asn1_DEF_VariablePartSet_tags[0]), /* 1 */
+ asn1_DEF_VariablePartSet_tags, /* Same as above */
+ sizeof(asn1_DEF_VariablePartSet_tags)
+ /sizeof(asn1_DEF_VariablePartSet_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_VariablePartSet,
2, /* Elements count */
@@ -401,6 +413,9 @@
asn1_DEF_vset_tags,
sizeof(asn1_DEF_vset_tags)
/sizeof(asn1_DEF_vset_tags[0]), /* 1 */
+ asn1_DEF_vset_tags, /* Same as above */
+ sizeof(asn1_DEF_vset_tags)
+ /sizeof(asn1_DEF_vset_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_vset,
1, /* Single element */
@@ -450,6 +465,9 @@
asn1_DEF_vrange_tags,
sizeof(asn1_DEF_vrange_tags)
/sizeof(asn1_DEF_vrange_tags[0]), /* 1 */
+ asn1_DEF_vrange_tags, /* Same as above */
+ sizeof(asn1_DEF_vrange_tags)
+ /sizeof(asn1_DEF_vrange_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_vrange,
2, /* Elements count */
@@ -493,8 +511,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_VariablePart,
2, /* Elements count */
@@ -583,6 +603,9 @@
asn1_DEF_email_tags,
sizeof(asn1_DEF_email_tags)
/sizeof(asn1_DEF_email_tags[0]), /* 1 */
+ asn1_DEF_email_tags, /* Same as above */
+ sizeof(asn1_DEF_email_tags)
+ /sizeof(asn1_DEF_email_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_email,
1, /* Single element */
@@ -632,6 +655,9 @@
asn1_DEF_notify_tags,
sizeof(asn1_DEF_notify_tags)
/sizeof(asn1_DEF_notify_tags[0]), /* 1 */
+ asn1_DEF_notify_tags, /* Same as above */
+ sizeof(asn1_DEF_notify_tags)
+ /sizeof(asn1_DEF_notify_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_notify,
2, /* Elements count */
@@ -680,6 +706,9 @@
asn1_DEF_ActionItem_tags,
sizeof(asn1_DEF_ActionItem_tags)
/sizeof(asn1_DEF_ActionItem_tags[0]), /* 1 */
+ asn1_DEF_ActionItem_tags, /* Same as above */
+ sizeof(asn1_DEF_ActionItem_tags)
+ /sizeof(asn1_DEF_ActionItem_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_ActionItem,
2, /* Elements count */
diff --git a/tests/43-recursion-OK.asn1.-P b/tests/43-recursion-OK.asn1.-P
index 18c02d7..1f93524 100644
--- a/tests/43-recursion-OK.asn1.-P
+++ b/tests/43-recursion-OK.asn1.-P
@@ -66,6 +66,9 @@
asn1_DEF_t_member1_tags,
sizeof(asn1_DEF_t_member1_tags)
/sizeof(asn1_DEF_t_member1_tags[0]), /* 1 */
+ asn1_DEF_t_member1_tags, /* Same as above */
+ sizeof(asn1_DEF_t_member1_tags)
+ /sizeof(asn1_DEF_t_member1_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_t_member1,
1, /* Single element */
@@ -100,6 +103,9 @@
asn1_DEF_t_member2_tags,
sizeof(asn1_DEF_t_member2_tags)
/sizeof(asn1_DEF_t_member2_tags[0]), /* 1 */
+ asn1_DEF_t_member2_tags, /* Same as above */
+ sizeof(asn1_DEF_t_member2_tags)
+ /sizeof(asn1_DEF_t_member2_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_t_member2,
1, /* Single element */
@@ -164,6 +170,9 @@
asn1_DEF_Test_structure_1_tags,
sizeof(asn1_DEF_Test_structure_1_tags)
/sizeof(asn1_DEF_Test_structure_1_tags[0]), /* 1 */
+ asn1_DEF_Test_structure_1_tags, /* Same as above */
+ sizeof(asn1_DEF_Test_structure_1_tags)
+ /sizeof(asn1_DEF_Test_structure_1_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Test_structure_1,
4, /* Elements count */
@@ -223,7 +232,8 @@
},
};
static ber_tlv_tag_t asn1_DEF_or_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (2 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_or_specs = {
sizeof(struct or),
@@ -240,7 +250,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_or_tags,
sizeof(asn1_DEF_or_tags)
- /sizeof(asn1_DEF_or_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_or_tags[0]) - 1, /* 1 */
+ asn1_DEF_or_tags, /* Same as above */
+ sizeof(asn1_DEF_or_tags)
+ /sizeof(asn1_DEF_or_tags[0]), /* 2 */
1, /* Whether CONSTRUCTED */
asn1_MBR_or,
1, /* Single element */
@@ -300,8 +313,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_Choice_1,
4, /* Elements count */
diff --git a/tests/44-choice-in-sequence-OK.asn1.-P b/tests/44-choice-in-sequence-OK.asn1.-P
index 107cdb8..5ac269d 100644
--- a/tests/44-choice-in-sequence-OK.asn1.-P
+++ b/tests/44-choice-in-sequence-OK.asn1.-P
@@ -106,8 +106,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_e,
2, /* Elements count */
@@ -152,8 +154,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_h,
2, /* Elements count */
@@ -215,8 +219,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_b,
4, /* Elements count */
@@ -240,7 +246,8 @@
},
};
static ber_tlv_tag_t asn1_DEF_T_tags[] = {
- (ASN_TAG_CLASS_PRIVATE | (1 << 2))
+ (ASN_TAG_CLASS_PRIVATE | (1 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_T_tag2el[] = {
{ (ASN_TAG_CLASS_PRIVATE | (2 << 2)), 0, 0, 0 }, /* a at 15 */
@@ -268,7 +275,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_T_tags,
sizeof(asn1_DEF_T_tags)
- /sizeof(asn1_DEF_T_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_T_tags[0]) - 1, /* 1 */
+ asn1_DEF_T_tags, /* Same as above */
+ sizeof(asn1_DEF_T_tags)
+ /sizeof(asn1_DEF_T_tags[0]), /* 2 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T,
2, /* Elements count */
diff --git a/tests/46-redefine-OK.asn1.-PR b/tests/46-redefine-OK.asn1.-PR
index ea256a8..9104df8 100644
--- a/tests/46-redefine-OK.asn1.-PR
+++ b/tests/46-redefine-OK.asn1.-PR
@@ -91,6 +91,9 @@
asn1_DEF_PrimitiveType_tags,
sizeof(asn1_DEF_PrimitiveType_tags)
/sizeof(asn1_DEF_PrimitiveType_tags[0]), /* 1 */
+ asn1_DEF_PrimitiveType_tags, /* Same as above */
+ sizeof(asn1_DEF_PrimitiveType_tags)
+ /sizeof(asn1_DEF_PrimitiveType_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -152,6 +155,9 @@
asn1_DEF_ConstructedType_tags,
sizeof(asn1_DEF_ConstructedType_tags)
/sizeof(asn1_DEF_ConstructedType_tags[0]), /* 1 */
+ asn1_DEF_ConstructedType_tags, /* Same as above */
+ sizeof(asn1_DEF_ConstructedType_tags)
+ /sizeof(asn1_DEF_ConstructedType_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_ConstructedType,
1, /* Elements count */
@@ -238,7 +244,8 @@
/*** <<< STAT-DEFS [T] >>> ***/
static ber_tlv_tag_t asn1_DEF_T_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (3 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
asn1_TYPE_descriptor_t asn1_DEF_T = {
"T",
@@ -250,7 +257,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_T_tags,
sizeof(asn1_DEF_T_tags)
- /sizeof(asn1_DEF_T_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_T_tags[0]) - 1, /* 1 */
+ asn1_DEF_T_tags, /* Same as above */
+ sizeof(asn1_DEF_T_tags)
+ /sizeof(asn1_DEF_T_tags[0]), /* 2 */
-0, /* Unknown yet */
0, 0, /* Defined elsewhere */
0 /* No specifics */
diff --git a/tests/47-set-ext-OK.asn1.-P b/tests/47-set-ext-OK.asn1.-P
index 5a3e2c1..51b77ac 100644
--- a/tests/47-set-ext-OK.asn1.-P
+++ b/tests/47-set-ext-OK.asn1.-P
@@ -73,6 +73,9 @@
asn1_DEF_T1_tags,
sizeof(asn1_DEF_T1_tags)
/sizeof(asn1_DEF_T1_tags[0]), /* 1 */
+ asn1_DEF_T1_tags, /* Same as above */
+ sizeof(asn1_DEF_T1_tags)
+ /sizeof(asn1_DEF_T1_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T1,
1, /* Elements count */
@@ -154,6 +157,9 @@
asn1_DEF_T2_tags,
sizeof(asn1_DEF_T2_tags)
/sizeof(asn1_DEF_T2_tags[0]), /* 1 */
+ asn1_DEF_T2_tags, /* Same as above */
+ sizeof(asn1_DEF_T2_tags)
+ /sizeof(asn1_DEF_T2_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T2,
1, /* Elements count */
@@ -223,8 +229,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_T3,
1, /* Elements count */
@@ -294,8 +302,10 @@
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
- 0, /* No explicit tags (pointer) */
- 0, /* No explicit tags (count) */
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
1, /* Whether CONSTRUCTED */
asn1_MBR_T4,
1, /* Elements count */
diff --git a/tests/50-constraint-OK.asn1.-P b/tests/50-constraint-OK.asn1.-P
index 4459f53..545ddba 100644
--- a/tests/50-constraint-OK.asn1.-P
+++ b/tests/50-constraint-OK.asn1.-P
@@ -91,6 +91,9 @@
asn1_DEF_Int1_tags,
sizeof(asn1_DEF_Int1_tags)
/sizeof(asn1_DEF_Int1_tags[0]), /* 1 */
+ asn1_DEF_Int1_tags, /* Same as above */
+ sizeof(asn1_DEF_Int1_tags)
+ /sizeof(asn1_DEF_Int1_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -207,6 +210,9 @@
asn1_DEF_Int2_tags,
sizeof(asn1_DEF_Int2_tags)
/sizeof(asn1_DEF_Int2_tags[0]), /* 1 */
+ asn1_DEF_Int2_tags, /* Same as above */
+ sizeof(asn1_DEF_Int2_tags)
+ /sizeof(asn1_DEF_Int2_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -327,6 +333,9 @@
asn1_DEF_Int3_tags,
sizeof(asn1_DEF_Int3_tags)
/sizeof(asn1_DEF_Int3_tags[0]), /* 1 */
+ asn1_DEF_Int3_tags, /* Same as above */
+ sizeof(asn1_DEF_Int3_tags)
+ /sizeof(asn1_DEF_Int3_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -447,6 +456,9 @@
asn1_DEF_Int4_tags,
sizeof(asn1_DEF_Int4_tags)
/sizeof(asn1_DEF_Int4_tags[0]), /* 1 */
+ asn1_DEF_Int4_tags, /* Same as above */
+ sizeof(asn1_DEF_Int4_tags)
+ /sizeof(asn1_DEF_Int4_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -567,6 +579,9 @@
asn1_DEF_Int5_tags,
sizeof(asn1_DEF_Int5_tags)
/sizeof(asn1_DEF_Int5_tags[0]), /* 1 */
+ asn1_DEF_Int5_tags, /* Same as above */
+ sizeof(asn1_DEF_Int5_tags)
+ /sizeof(asn1_DEF_Int5_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -687,6 +702,9 @@
asn1_DEF_ExtensibleExtensions_tags,
sizeof(asn1_DEF_ExtensibleExtensions_tags)
/sizeof(asn1_DEF_ExtensibleExtensions_tags[0]), /* 1 */
+ asn1_DEF_ExtensibleExtensions_tags, /* Same as above */
+ sizeof(asn1_DEF_ExtensibleExtensions_tags)
+ /sizeof(asn1_DEF_ExtensibleExtensions_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -785,6 +803,9 @@
asn1_DEF_Str1_tags,
sizeof(asn1_DEF_Str1_tags)
/sizeof(asn1_DEF_Str1_tags[0]), /* 1 */
+ asn1_DEF_Str1_tags, /* Same as above */
+ sizeof(asn1_DEF_Str1_tags)
+ /sizeof(asn1_DEF_Str1_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -917,6 +938,9 @@
asn1_DEF_Str2_tags,
sizeof(asn1_DEF_Str2_tags)
/sizeof(asn1_DEF_Str2_tags[0]), /* 1 */
+ asn1_DEF_Str2_tags, /* Same as above */
+ sizeof(asn1_DEF_Str2_tags)
+ /sizeof(asn1_DEF_Str2_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1060,6 +1084,9 @@
asn1_DEF_Str3_tags,
sizeof(asn1_DEF_Str3_tags)
/sizeof(asn1_DEF_Str3_tags[0]), /* 1 */
+ asn1_DEF_Str3_tags, /* Same as above */
+ sizeof(asn1_DEF_Str3_tags)
+ /sizeof(asn1_DEF_Str3_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1189,6 +1216,9 @@
asn1_DEF_Str4_tags,
sizeof(asn1_DEF_Str4_tags)
/sizeof(asn1_DEF_Str4_tags[0]), /* 1 */
+ asn1_DEF_Str4_tags, /* Same as above */
+ sizeof(asn1_DEF_Str4_tags)
+ /sizeof(asn1_DEF_Str4_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1318,6 +1348,9 @@
asn1_DEF_PER_Visible_tags,
sizeof(asn1_DEF_PER_Visible_tags)
/sizeof(asn1_DEF_PER_Visible_tags[0]), /* 1 */
+ asn1_DEF_PER_Visible_tags, /* Same as above */
+ sizeof(asn1_DEF_PER_Visible_tags)
+ /sizeof(asn1_DEF_PER_Visible_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1447,6 +1480,9 @@
asn1_DEF_PER_Visible_2_tags,
sizeof(asn1_DEF_PER_Visible_2_tags)
/sizeof(asn1_DEF_PER_Visible_2_tags[0]), /* 1 */
+ asn1_DEF_PER_Visible_2_tags, /* Same as above */
+ sizeof(asn1_DEF_PER_Visible_2_tags)
+ /sizeof(asn1_DEF_PER_Visible_2_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1576,6 +1612,9 @@
asn1_DEF_Not_PER_Visible_1_tags,
sizeof(asn1_DEF_Not_PER_Visible_1_tags)
/sizeof(asn1_DEF_Not_PER_Visible_1_tags[0]), /* 1 */
+ asn1_DEF_Not_PER_Visible_1_tags, /* Same as above */
+ sizeof(asn1_DEF_Not_PER_Visible_1_tags)
+ /sizeof(asn1_DEF_Not_PER_Visible_1_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1705,6 +1744,9 @@
asn1_DEF_Not_PER_Visible_2_tags,
sizeof(asn1_DEF_Not_PER_Visible_2_tags)
/sizeof(asn1_DEF_Not_PER_Visible_2_tags[0]), /* 1 */
+ asn1_DEF_Not_PER_Visible_2_tags, /* Same as above */
+ sizeof(asn1_DEF_Not_PER_Visible_2_tags)
+ /sizeof(asn1_DEF_Not_PER_Visible_2_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1834,6 +1876,9 @@
asn1_DEF_Not_PER_Visible_3_tags,
sizeof(asn1_DEF_Not_PER_Visible_3_tags)
/sizeof(asn1_DEF_Not_PER_Visible_3_tags[0]), /* 1 */
+ asn1_DEF_Not_PER_Visible_3_tags, /* Same as above */
+ sizeof(asn1_DEF_Not_PER_Visible_3_tags)
+ /sizeof(asn1_DEF_Not_PER_Visible_3_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -1966,6 +2011,9 @@
asn1_DEF_SIZE_but_not_FROM_tags,
sizeof(asn1_DEF_SIZE_but_not_FROM_tags)
/sizeof(asn1_DEF_SIZE_but_not_FROM_tags[0]), /* 1 */
+ asn1_DEF_SIZE_but_not_FROM_tags, /* Same as above */
+ sizeof(asn1_DEF_SIZE_but_not_FROM_tags)
+ /sizeof(asn1_DEF_SIZE_but_not_FROM_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -2098,6 +2146,9 @@
asn1_DEF_SIZE_and_FROM_tags,
sizeof(asn1_DEF_SIZE_and_FROM_tags)
/sizeof(asn1_DEF_SIZE_and_FROM_tags[0]), /* 1 */
+ asn1_DEF_SIZE_and_FROM_tags, /* Same as above */
+ sizeof(asn1_DEF_SIZE_and_FROM_tags)
+ /sizeof(asn1_DEF_SIZE_and_FROM_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -2227,6 +2278,9 @@
asn1_DEF_Neither_SIZE_nor_FROM_tags,
sizeof(asn1_DEF_Neither_SIZE_nor_FROM_tags)
/sizeof(asn1_DEF_Neither_SIZE_nor_FROM_tags[0]), /* 1 */
+ asn1_DEF_Neither_SIZE_nor_FROM_tags, /* Same as above */
+ sizeof(asn1_DEF_Neither_SIZE_nor_FROM_tags)
+ /sizeof(asn1_DEF_Neither_SIZE_nor_FROM_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -2373,6 +2427,9 @@
asn1_DEF_Utf8_3_tags,
sizeof(asn1_DEF_Utf8_3_tags)
/sizeof(asn1_DEF_Utf8_3_tags[0]), /* 1 */
+ asn1_DEF_Utf8_3_tags, /* Same as above */
+ sizeof(asn1_DEF_Utf8_3_tags)
+ /sizeof(asn1_DEF_Utf8_3_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -2489,6 +2546,9 @@
asn1_DEF_Utf8_2_tags,
sizeof(asn1_DEF_Utf8_2_tags)
/sizeof(asn1_DEF_Utf8_2_tags[0]), /* 1 */
+ asn1_DEF_Utf8_2_tags, /* Same as above */
+ sizeof(asn1_DEF_Utf8_2_tags)
+ /sizeof(asn1_DEF_Utf8_2_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -2587,6 +2647,9 @@
asn1_DEF_Utf8_1_tags,
sizeof(asn1_DEF_Utf8_1_tags)
/sizeof(asn1_DEF_Utf8_1_tags[0]), /* 1 */
+ asn1_DEF_Utf8_1_tags, /* Same as above */
+ sizeof(asn1_DEF_Utf8_1_tags)
+ /sizeof(asn1_DEF_Utf8_1_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
diff --git a/tests/60-any-OK.asn1.-P b/tests/60-any-OK.asn1.-P
index 86d47f4..62fd9b3 100644
--- a/tests/60-any-OK.asn1.-P
+++ b/tests/60-any-OK.asn1.-P
@@ -63,6 +63,9 @@
asn1_DEF_T1_tags,
sizeof(asn1_DEF_T1_tags)
/sizeof(asn1_DEF_T1_tags[0]), /* 1 */
+ asn1_DEF_T1_tags, /* Same as above */
+ sizeof(asn1_DEF_T1_tags)
+ /sizeof(asn1_DEF_T1_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T1,
2, /* Elements count */
@@ -135,6 +138,9 @@
asn1_DEF_T2_tags,
sizeof(asn1_DEF_T2_tags)
/sizeof(asn1_DEF_T2_tags[0]), /* 1 */
+ asn1_DEF_T2_tags, /* Same as above */
+ sizeof(asn1_DEF_T2_tags)
+ /sizeof(asn1_DEF_T2_tags[0]), /* 1 */
1, /* Whether CONSTRUCTED */
asn1_MBR_T2,
2, /* Elements count */
diff --git a/tests/65-multi-tag-OK.asn1.-P b/tests/65-multi-tag-OK.asn1.-P
index fec7c9c..01681c2 100644
--- a/tests/65-multi-tag-OK.asn1.-P
+++ b/tests/65-multi-tag-OK.asn1.-P
@@ -83,6 +83,14 @@
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
(ASN_TAG_CLASS_CONTEXT | (6 << 2))
};
+static ber_tlv_tag_t asn1_DEF_T1_all_tags[] = {
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
asn1_TYPE_descriptor_t asn1_DEF_T1 = {
"T1",
T1_constraint,
@@ -94,6 +102,9 @@
asn1_DEF_T1_tags,
sizeof(asn1_DEF_T1_tags)
/sizeof(asn1_DEF_T1_tags[0]), /* 4 */
+ asn1_DEF_T1_all_tags,
+ sizeof(asn1_DEF_T1_all_tags)
+ /sizeof(asn1_DEF_T1_all_tags[0]), /* 6 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -183,6 +194,13 @@
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
(ASN_TAG_CLASS_CONTEXT | (6 << 2))
};
+static ber_tlv_tag_t asn1_DEF_T2_all_tags[] = {
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
asn1_TYPE_descriptor_t asn1_DEF_T2 = {
"T2",
T2_constraint,
@@ -194,6 +212,9 @@
asn1_DEF_T2_tags,
sizeof(asn1_DEF_T2_tags)
/sizeof(asn1_DEF_T2_tags[0]), /* 3 */
+ asn1_DEF_T2_all_tags,
+ sizeof(asn1_DEF_T2_all_tags)
+ /sizeof(asn1_DEF_T2_all_tags[0]), /* 5 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -282,6 +303,12 @@
(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
(ASN_TAG_CLASS_CONTEXT | (6 << 2))
};
+static ber_tlv_tag_t asn1_DEF_T3_all_tags[] = {
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
asn1_TYPE_descriptor_t asn1_DEF_T3 = {
"T3",
T3_constraint,
@@ -293,6 +320,9 @@
asn1_DEF_T3_tags,
sizeof(asn1_DEF_T3_tags)
/sizeof(asn1_DEF_T3_tags[0]), /* 2 */
+ asn1_DEF_T3_all_tags,
+ sizeof(asn1_DEF_T3_all_tags)
+ /sizeof(asn1_DEF_T3_all_tags[0]), /* 4 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -379,7 +409,8 @@
static ber_tlv_tag_t asn1_DEF_T4_tags[] = {
(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
- (ASN_TAG_CLASS_CONTEXT | (6 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn1_TYPE_descriptor_t asn1_DEF_T4 = {
"T4",
@@ -391,7 +422,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_T4_tags,
sizeof(asn1_DEF_T4_tags)
- /sizeof(asn1_DEF_T4_tags[0]), /* 2 */
+ /sizeof(asn1_DEF_T4_tags[0]) - 1, /* 2 */
+ asn1_DEF_T4_tags, /* Same as above */
+ sizeof(asn1_DEF_T4_tags)
+ /sizeof(asn1_DEF_T4_tags[0]), /* 3 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -477,7 +511,8 @@
/*** <<< STAT-DEFS [T5] >>> ***/
static ber_tlv_tag_t asn1_DEF_T5_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (6 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn1_TYPE_descriptor_t asn1_DEF_T5 = {
"T5",
@@ -489,7 +524,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_T5_tags,
sizeof(asn1_DEF_T5_tags)
- /sizeof(asn1_DEF_T5_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_T5_tags[0]) - 1, /* 1 */
+ asn1_DEF_T5_tags, /* Same as above */
+ sizeof(asn1_DEF_T5_tags)
+ /sizeof(asn1_DEF_T5_tags[0]), /* 2 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -588,6 +626,9 @@
asn1_DEF_T6_tags,
sizeof(asn1_DEF_T6_tags)
/sizeof(asn1_DEF_T6_tags[0]), /* 1 */
+ asn1_DEF_T6_tags, /* Same as above */
+ sizeof(asn1_DEF_T6_tags)
+ /sizeof(asn1_DEF_T6_tags[0]), /* 1 */
-0, /* Unknown yet */
0, 0, /* No members */
0 /* No specifics */
@@ -673,7 +714,9 @@
/*** <<< STAT-DEFS [T] >>> ***/
static ber_tlv_tag_t asn1_DEF_T_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (0 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
asn1_TYPE_descriptor_t asn1_DEF_T = {
"T",
@@ -685,7 +728,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_T_tags,
sizeof(asn1_DEF_T_tags)
- /sizeof(asn1_DEF_T_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_T_tags[0]) - 2, /* 1 */
+ asn1_DEF_T_tags, /* Same as above */
+ sizeof(asn1_DEF_T_tags)
+ /sizeof(asn1_DEF_T_tags[0]), /* 3 */
-0, /* Unknown yet */
0, 0, /* Defined elsewhere */
0 /* No specifics */
@@ -740,7 +786,8 @@
},
};
static ber_tlv_tag_t asn1_DEF_Ts_tags[] = {
- (ASN_TAG_CLASS_CONTEXT | (123 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (123 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_Ts_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* m1 at 24 */
@@ -765,7 +812,10 @@
0, /* Use generic outmost tag fetcher */
asn1_DEF_Ts_tags,
sizeof(asn1_DEF_Ts_tags)
- /sizeof(asn1_DEF_Ts_tags[0]), /* 1 */
+ /sizeof(asn1_DEF_Ts_tags[0]) - 1, /* 1 */
+ asn1_DEF_Ts_tags, /* Same as above */
+ sizeof(asn1_DEF_Ts_tags)
+ /sizeof(asn1_DEF_Ts_tags[0]), /* 2 */
1, /* Whether CONSTRUCTED */
asn1_MBR_Ts,
3, /* Elements count */