Loading gn/packet-gn.c +47 −3 Original line number Original line Diff line number Diff line Loading @@ -117,6 +117,7 @@ static gint ett_st = -1; static gint ett_secdata = -1; static gint ett_secdata = -1; static gint ett_2dlocation = -1; static gint ett_2dlocation = -1; static gint ett_3dlocation = -1; static gint ett_3dlocation = -1; static gint ett_assurance_level_flags = -1; /* Basic Header fields */ /* Basic Header fields */ static int hf_gn_basicheader = -1; static int hf_gn_basicheader = -1; Loading Loading @@ -236,6 +237,9 @@ static int hf_gn_sh_field_subject_type = -1; static int hf_gn_sh_field_subjectattr_type = -1; static int hf_gn_sh_field_subjectattr_type = -1; static int hf_gn_sh_field_validityrestr_type = -1; static int hf_gn_sh_field_validityrestr_type = -1; static int hf_gn_st_field_assurelev = -1; static int hf_gn_st_field_assurelev = -1; static int hf_gn_st_field_assurelev_flags_levels_bits = -1; static int hf_gn_st_field_assurelev_flags_reserved_bits = -1; static int hf_gn_st_field_assurelev_flags_confidence_bits = -1; static int hf_gn_sh_field_geo_region_type = -1; static int hf_gn_sh_field_geo_region_type = -1; static int hf_gn_sh_field_geo_circle_radius = -1; static int hf_gn_sh_field_geo_circle_radius = -1; static int hf_gn_sh_field_geo_region_dict = -1; static int hf_gn_sh_field_geo_region_dict = -1; Loading Loading @@ -1103,6 +1107,10 @@ static int tree_gn_cert(tvbuff_t *tvb, proto_tree *ext_tree, int offset) hdrlen -= extraoffset; hdrlen -= extraoffset; if (attrlen) { if (attrlen) { proto_tree *tree_assurance_level = NULL; proto_item *ti_assurance_level = NULL; guint8 assurance_level_flags = -1; while (attrlen > 0) { while (attrlen > 0) { subjattr_type = tvb_get_guint8(tvb, offset); subjattr_type = tvb_get_guint8(tvb, offset); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); Loading @@ -1126,7 +1134,18 @@ static int tree_gn_cert(tvbuff_t *tvb, proto_tree *ext_tree, int offset) break; break; case 2: case 2: // assurance level // assurance level proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); ti_assurance_level = proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); tree_assurance_level = proto_item_add_subtree(ti_assurance_level, ett_assurance_level_flags); assurance_level_flags = tvb_get_guint8(tvb, offset); if ((assurance_level_flags & 0xe0) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_levels_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x1c) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_reserved_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x03) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_confidence_bits, tvb, offset, 1, FALSE); } offset += 1; offset += 1; hdrlen -= 1; hdrlen -= 1; attrlen -= 1; attrlen -= 1; Loading Loading @@ -1988,6 +2007,10 @@ dissect_secured_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int hdrlen -= extraoffset; hdrlen -= extraoffset; if (attrlen) { if (attrlen) { proto_tree *tree_assurance_level = NULL; proto_item *ti_assurance_level = NULL; guint8 assurance_level_flags = -1; while (attrlen > 0) { while (attrlen > 0) { subjattr_type = tvb_get_guint8(tvb, offset); subjattr_type = tvb_get_guint8(tvb, offset); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); Loading @@ -2011,7 +2034,18 @@ dissect_secured_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int break; break; case 2: case 2: // assurance level // assurance level proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); ti_assurance_level = proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); tree_assurance_level = proto_item_add_subtree(ti_assurance_level, ett_assurance_level_flags); assurance_level_flags = tvb_get_guint8(tvb, offset); if ((assurance_level_flags & 0xe0) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_levels_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x1c) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_reserved_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x03) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_confidence_bits, tvb, offset, 1, FALSE); } offset += 1; offset += 1; hdrlen -= 1; hdrlen -= 1; attrlen -= 1; attrlen -= 1; Loading Loading @@ -2557,6 +2591,15 @@ proto_register_gn(void) { &hf_gn_st_field_assurelev, { &hf_gn_st_field_assurelev, {"Assurance Level", "gn.sh.assurelev", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL} {"Assurance Level", "gn.sh.assurelev", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL} }, }, { &hf_gn_st_field_assurelev_flags_levels_bits, {"Levels bits", "gn.sh.assurelev.flags.lbits", FT_UINT8, BASE_HEX, NULL, 0xe0, NULL, HFILL} }, { &hf_gn_st_field_assurelev_flags_reserved_bits, {"Reserved bits", "gn.sh.assurelev.flags.rbits", FT_UINT8, BASE_HEX, NULL, 0x1c, NULL, HFILL} }, { &hf_gn_st_field_assurelev_flags_confidence_bits, {"Confidence bits", "gn.sh.assurelev.flags.cbits", FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL} }, { &hf_gn_sh_field_geo_region_type, { &hf_gn_sh_field_geo_region_type, {"Geographic Region", "gn.sh.georegion", FT_UINT8, BASE_DEC, VALS(sh_georegiontype_names), 0x00, NULL, HFILL} {"Geographic Region", "gn.sh.georegion", FT_UINT8, BASE_DEC, VALS(sh_georegiontype_names), 0x00, NULL, HFILL} }, }, Loading Loading @@ -2860,7 +2903,8 @@ proto_register_gn(void) &ett_depv_addr, &ett_depv_addr, &ett_secdata, &ett_secdata, &ett_2dlocation, &ett_2dlocation, &ett_3dlocation &ett_3dlocation, &ett_assurance_level_flags }; }; /* Register the protocol name and description */ /* Register the protocol name and description */ Loading Loading
gn/packet-gn.c +47 −3 Original line number Original line Diff line number Diff line Loading @@ -117,6 +117,7 @@ static gint ett_st = -1; static gint ett_secdata = -1; static gint ett_secdata = -1; static gint ett_2dlocation = -1; static gint ett_2dlocation = -1; static gint ett_3dlocation = -1; static gint ett_3dlocation = -1; static gint ett_assurance_level_flags = -1; /* Basic Header fields */ /* Basic Header fields */ static int hf_gn_basicheader = -1; static int hf_gn_basicheader = -1; Loading Loading @@ -236,6 +237,9 @@ static int hf_gn_sh_field_subject_type = -1; static int hf_gn_sh_field_subjectattr_type = -1; static int hf_gn_sh_field_subjectattr_type = -1; static int hf_gn_sh_field_validityrestr_type = -1; static int hf_gn_sh_field_validityrestr_type = -1; static int hf_gn_st_field_assurelev = -1; static int hf_gn_st_field_assurelev = -1; static int hf_gn_st_field_assurelev_flags_levels_bits = -1; static int hf_gn_st_field_assurelev_flags_reserved_bits = -1; static int hf_gn_st_field_assurelev_flags_confidence_bits = -1; static int hf_gn_sh_field_geo_region_type = -1; static int hf_gn_sh_field_geo_region_type = -1; static int hf_gn_sh_field_geo_circle_radius = -1; static int hf_gn_sh_field_geo_circle_radius = -1; static int hf_gn_sh_field_geo_region_dict = -1; static int hf_gn_sh_field_geo_region_dict = -1; Loading Loading @@ -1103,6 +1107,10 @@ static int tree_gn_cert(tvbuff_t *tvb, proto_tree *ext_tree, int offset) hdrlen -= extraoffset; hdrlen -= extraoffset; if (attrlen) { if (attrlen) { proto_tree *tree_assurance_level = NULL; proto_item *ti_assurance_level = NULL; guint8 assurance_level_flags = -1; while (attrlen > 0) { while (attrlen > 0) { subjattr_type = tvb_get_guint8(tvb, offset); subjattr_type = tvb_get_guint8(tvb, offset); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); Loading @@ -1126,7 +1134,18 @@ static int tree_gn_cert(tvbuff_t *tvb, proto_tree *ext_tree, int offset) break; break; case 2: case 2: // assurance level // assurance level proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); ti_assurance_level = proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); tree_assurance_level = proto_item_add_subtree(ti_assurance_level, ett_assurance_level_flags); assurance_level_flags = tvb_get_guint8(tvb, offset); if ((assurance_level_flags & 0xe0) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_levels_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x1c) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_reserved_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x03) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_confidence_bits, tvb, offset, 1, FALSE); } offset += 1; offset += 1; hdrlen -= 1; hdrlen -= 1; attrlen -= 1; attrlen -= 1; Loading Loading @@ -1988,6 +2007,10 @@ dissect_secured_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int hdrlen -= extraoffset; hdrlen -= extraoffset; if (attrlen) { if (attrlen) { proto_tree *tree_assurance_level = NULL; proto_item *ti_assurance_level = NULL; guint8 assurance_level_flags = -1; while (attrlen > 0) { while (attrlen > 0) { subjattr_type = tvb_get_guint8(tvb, offset); subjattr_type = tvb_get_guint8(tvb, offset); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); proto_tree_add_item(shfc_tree, hf_gn_sh_field_subjectattr_type, tvb, offset, 1, FALSE); Loading @@ -2011,7 +2034,18 @@ dissect_secured_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int break; break; case 2: case 2: // assurance level // assurance level proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); ti_assurance_level = proto_tree_add_item(shfc_tree, hf_gn_st_field_assurelev, tvb, offset, 1, FALSE); tree_assurance_level = proto_item_add_subtree(ti_assurance_level, ett_assurance_level_flags); assurance_level_flags = tvb_get_guint8(tvb, offset); if ((assurance_level_flags & 0xe0) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_levels_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x1c) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_reserved_bits, tvb, offset, 1, FALSE); } if ((assurance_level_flags & 0x03) != 0x00) { proto_tree_add_item(tree_assurance_level, hf_gn_st_field_assurelev_flags_confidence_bits, tvb, offset, 1, FALSE); } offset += 1; offset += 1; hdrlen -= 1; hdrlen -= 1; attrlen -= 1; attrlen -= 1; Loading Loading @@ -2557,6 +2591,15 @@ proto_register_gn(void) { &hf_gn_st_field_assurelev, { &hf_gn_st_field_assurelev, {"Assurance Level", "gn.sh.assurelev", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL} {"Assurance Level", "gn.sh.assurelev", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL} }, }, { &hf_gn_st_field_assurelev_flags_levels_bits, {"Levels bits", "gn.sh.assurelev.flags.lbits", FT_UINT8, BASE_HEX, NULL, 0xe0, NULL, HFILL} }, { &hf_gn_st_field_assurelev_flags_reserved_bits, {"Reserved bits", "gn.sh.assurelev.flags.rbits", FT_UINT8, BASE_HEX, NULL, 0x1c, NULL, HFILL} }, { &hf_gn_st_field_assurelev_flags_confidence_bits, {"Confidence bits", "gn.sh.assurelev.flags.cbits", FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL} }, { &hf_gn_sh_field_geo_region_type, { &hf_gn_sh_field_geo_region_type, {"Geographic Region", "gn.sh.georegion", FT_UINT8, BASE_DEC, VALS(sh_georegiontype_names), 0x00, NULL, HFILL} {"Geographic Region", "gn.sh.georegion", FT_UINT8, BASE_DEC, VALS(sh_georegiontype_names), 0x00, NULL, HFILL} }, }, Loading Loading @@ -2860,7 +2903,8 @@ proto_register_gn(void) &ett_depv_addr, &ett_depv_addr, &ett_secdata, &ett_secdata, &ett_2dlocation, &ett_2dlocation, &ett_3dlocation &ett_3dlocation, &ett_assurance_level_flags }; }; /* Register the protocol name and description */ /* Register the protocol name and description */ Loading