aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMartin Peylo <wireshark@izac.de>2018-11-12 19:56:11 +0200
committerAnders Broman <a.broman58@gmail.com>2018-11-13 17:58:08 +0000
commit5d7199d8cedc31d5bb24d9f5c25aa9c4dab80669 (patch)
tree3e9d56878bcc0199bd50a76a91b2040a65a33b20 /epan
parent0142ca4539859055ff3e2f6befffd2a996540537 (diff)
PKIX1EXPLICIT: Fixing Attribute and AttributeTypeAndValue ASN.1 cnf
EXPERIMENTAL, this has not been widely validated yet. It is not clear whether there is any deeper sense in how the prior ASN.1 cnf was done. If this is used, it might also be beneficial to rename the double-overloaded "type". Removing pre-existing empty line at the end of packet-pkix1explicit-template.c to comply with coding style requirements. Change-Id: Iaddeb62f8abb8605b182091ea9c64b8f2172a884 Reviewed-on: https://code.wireshark.org/review/30599 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c1
-rw-r--r--epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf12
-rw-r--r--epan/dissectors/packet-pkix1explicit.c47
3 files changed, 32 insertions, 28 deletions
diff --git a/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
index 5260a74cd7..e4d9199c92 100644
--- a/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
+++ b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
@@ -129,4 +129,3 @@ void proto_reg_handoff_pkix1explicit(void) {
oid_add_from_string("id-dsa-with-sha1","1.2.840.10040.4.3");
#include "packet-pkix1explicit-dis-tab.c"
}
-
diff --git a/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf b/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
index de7bc2f260..29bc5f3cf5 100644
--- a/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
+++ b/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
@@ -40,21 +40,17 @@ Extensions B "1.2.840.113549.1.9.14" "pkcs-9-at-extensionRequest"
#.FN_BODY DirectoryString
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
-#.FN_PARS Attribute/values
- FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id
+#.FN_PARS Attribute/type
+ FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_type VAL_PTR = &actx->external.direct_reference
#.FN_BODY Attribute/values/_item
- if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
- }
-#.FN_PARS AttributeTypeAndValue/value
- FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id
+#.FN_PARS AttributeTypeAndValue/type
+ FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_type_01 VAL_PTR = &actx->external.direct_reference
#.FN_BODY AttributeTypeAndValue/value
- if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
- }
#.FN_PARS Extension/extnId
FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id VAL_PTR = &actx->external.direct_reference
diff --git a/epan/dissectors/packet-pkix1explicit.c b/epan/dissectors/packet-pkix1explicit.c
index cba740394f..b87faa78c6 100644
--- a/epan/dissectors/packet-pkix1explicit.c
+++ b/epan/dissectors/packet-pkix1explicit.c
@@ -71,13 +71,14 @@ static int hf_pkix1explicit_j = -1; /* INTEGER */
static int hf_pkix1explicit_validationParms = -1; /* ValidationParms */
static int hf_pkix1explicit_seed = -1; /* BIT_STRING */
static int hf_pkix1explicit_pgenCounter = -1; /* INTEGER */
-static int hf_pkix1explicit_type = -1; /* OBJECT_IDENTIFIER */
+static int hf_pkix1explicit_type = -1; /* T_type */
static int hf_pkix1explicit_values = -1; /* T_values */
static int hf_pkix1explicit_values_item = -1; /* T_values_item */
+static int hf_pkix1explicit_type_01 = -1; /* T_type_01 */
static int hf_pkix1explicit_value = -1; /* T_value */
static int hf_pkix1explicit_RDNSequence_item = -1; /* RelativeDistinguishedName */
static int hf_pkix1explicit_RelativeDistinguishedName_item = -1; /* AttributeTypeAndValue */
-static int hf_pkix1explicit_type_01 = -1; /* TeletexString */
+static int hf_pkix1explicit_type_02 = -1; /* TeletexString */
static int hf_pkix1explicit_value_01 = -1; /* TeletexString */
static int hf_pkix1explicit_Features_item = -1; /* INTEGER */
static int hf_pkix1explicit_IPAddrBlocks_item = -1; /* IPAddressFamily */
@@ -257,7 +258,7 @@ dissect_pkix1explicit_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_pkix1explicit_T_extnId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 63 "./asn1/pkix1explicit/pkix1explicit.cnf"
+#line 59 "./asn1/pkix1explicit/pkix1explicit.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_pkix1explicit_object_identifier_id, &actx->external.direct_reference);
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
@@ -280,7 +281,7 @@ dissect_pkix1explicit_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_pkix1explicit_T_extnValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "./asn1/pkix1explicit/pkix1explicit.cnf"
+#line 63 "./asn1/pkix1explicit/pkix1explicit.cnf"
gint8 appclass;
gboolean pc, ind;
gint32 tag;
@@ -384,8 +385,8 @@ dissect_pkix1explicit_DomainParameters(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
-dissect_pkix1explicit_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+dissect_pkix1explicit_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_pkix1explicit_type, &actx->external.direct_reference);
return offset;
}
@@ -395,9 +396,7 @@ dissect_pkix1explicit_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_pkix1explicit_T_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#line 47 "./asn1/pkix1explicit/pkix1explicit.cnf"
- if (actx->external.direct_ref_present) {
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
- }
@@ -412,14 +411,14 @@ static const ber_sequence_t T_values_set_of[1] = {
static int
dissect_pkix1explicit_T_values(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- T_values_set_of, hf_pkix1explicit_object_identifier_id, ett_pkix1explicit_T_values);
+ T_values_set_of, hf_index, ett_pkix1explicit_T_values);
return offset;
}
static const ber_sequence_t Attribute_sequence[] = {
- { &hf_pkix1explicit_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_OBJECT_IDENTIFIER },
+ { &hf_pkix1explicit_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_type },
{ &hf_pkix1explicit_values, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_values },
{ NULL, 0, 0, 0, NULL }
};
@@ -435,11 +434,18 @@ dissect_pkix1explicit_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
+dissect_pkix1explicit_T_type_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_pkix1explicit_type_01, &actx->external.direct_reference);
+
+ return offset;
+}
+
+
+
+static int
dissect_pkix1explicit_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 55 "./asn1/pkix1explicit/pkix1explicit.cnf"
- if (actx->external.direct_ref_present) {
+#line 53 "./asn1/pkix1explicit/pkix1explicit.cnf"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
- }
@@ -448,7 +454,7 @@ dissect_pkix1explicit_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static const ber_sequence_t AttributeTypeAndValue_sequence[] = {
- { &hf_pkix1explicit_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_OBJECT_IDENTIFIER },
+ { &hf_pkix1explicit_type_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_type_01 },
{ &hf_pkix1explicit_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_value },
{ NULL, 0, 0, 0, NULL }
};
@@ -532,7 +538,7 @@ dissect_pkix1explicit_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
- { &hf_pkix1explicit_type_01, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_TeletexString },
+ { &hf_pkix1explicit_type_02, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_TeletexString },
{ &hf_pkix1explicit_value_01, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_TeletexString },
{ NULL, 0, 0, 0, NULL }
};
@@ -562,7 +568,7 @@ dissect_pkix1explicit_Features(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_pkix1explicit_T_addressFamily(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 81 "./asn1/pkix1explicit/pkix1explicit.cnf"
+#line 77 "./asn1/pkix1explicit/pkix1explicit.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -947,7 +953,7 @@ void proto_register_pkix1explicit(void) {
{ &hf_pkix1explicit_type,
{ "type", "pkix1explicit.type",
FT_OID, BASE_NONE, NULL, 0,
- "OBJECT_IDENTIFIER", HFILL }},
+ NULL, HFILL }},
{ &hf_pkix1explicit_values,
{ "values", "pkix1explicit.values",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -956,6 +962,10 @@ void proto_register_pkix1explicit(void) {
{ "values item", "pkix1explicit.values_item_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_pkix1explicit_type_01,
+ { "type", "pkix1explicit.type",
+ FT_OID, BASE_NONE, NULL, 0,
+ "T_type_01", HFILL }},
{ &hf_pkix1explicit_value,
{ "value", "pkix1explicit.value_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -968,7 +978,7 @@ void proto_register_pkix1explicit(void) {
{ "AttributeTypeAndValue", "pkix1explicit.AttributeTypeAndValue_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_pkix1explicit_type_01,
+ { &hf_pkix1explicit_type_02,
{ "type", "pkix1explicit.type",
FT_STRING, STR_UNICODE, NULL, 0,
"TeletexString", HFILL }},
@@ -1120,4 +1130,3 @@ void proto_reg_handoff_pkix1explicit(void) {
/*--- End of included file: packet-pkix1explicit-dis-tab.c ---*/
#line 131 "./asn1/pkix1explicit/packet-pkix1explicit-template.c"
}
-