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>
This commit is contained in:
Martin Peylo 2018-11-12 19:56:11 +02:00 committed by Anders Broman
parent 0142ca4539
commit 5d7199d8ce
3 changed files with 32 additions and 28 deletions

View File

@ -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"
}

View File

@ -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

View File

@ -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 }
};
@ -434,12 +433,19 @@ 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"
}