aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2015-02-19 05:40:29 +0100
committerAnders Broman <a.broman58@gmail.com>2020-05-26 09:24:20 +0000
commit975e8531a72e4f71eac872eaa145d1146abe2094 (patch)
tree9493c91e710668ac09fad408e529c6ed737121e5 /epan/dissectors
parentb95a1b652f22fe734403dd8c728607e35c35f0c7 (diff)
packet-kerberos: improve displaying used decryption keys
Change-Id: Ia2d8a0aa34ad1503477c0b8f3aa382a666067e24 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-on: https://code.wireshark.org/review/37290 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c30
-rw-r--r--epan/dissectors/packet-kerberos.c36
2 files changed, 59 insertions, 7 deletions
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
index 619ca3431d..089a14a9f7 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
@@ -669,14 +669,26 @@ static void used_encryption_key(proto_tree *tree, packet_info *pinfo,
kerberos_private_data_t *private_data _U_,
enc_key_t *ek, int usage, tvbuff_t *cryptotvb)
{
+ proto_item *item = NULL;
+ enc_key_t *sek = NULL;
- proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
+ item = proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
cryptotvb, 0, 0,
"Decrypted keytype %d usage %d "
"using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
ek->keytype, usage, ek->key_origin, ek->id_str, ek->num_same,
ek->keyvalue[0] & 0xFF, ek->keyvalue[1] & 0xFF,
ek->keyvalue[2] & 0xFF, ek->keyvalue[3] & 0xFF);
+ sek = ek->same_list;
+ while (sek != NULL) {
+ expert_add_info_format(pinfo, item, &ei_kerberos_decrypted_keytype,
+ "Decrypted keytype %d usage %d "
+ "using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
+ sek->keytype, usage, sek->key_origin, sek->id_str, sek->num_same,
+ sek->keyvalue[0] & 0xFF, sek->keyvalue[1] & 0xFF,
+ sek->keyvalue[2] & 0xFF, sek->keyvalue[3] & 0xFF);
+ sek = sek->same_list;
+ }
}
#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
@@ -689,7 +701,10 @@ static void used_signing_key(proto_tree *tree, packet_info *pinfo,
krb5_cksumtype checksum,
const char *reason)
{
- proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
+ proto_item *item = NULL;
+ enc_key_t *sek = NULL;
+
+ item = proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
tvb, 0, 0,
"%s checksum %d keytype %d "
"using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
@@ -697,6 +712,17 @@ static void used_signing_key(proto_tree *tree, packet_info *pinfo,
ek->id_str, ek->num_same,
ek->keyvalue[0] & 0xFF, ek->keyvalue[1] & 0xFF,
ek->keyvalue[2] & 0xFF, ek->keyvalue[3] & 0xFF);
+ sek = ek->same_list;
+ while (sek != NULL) {
+ expert_add_info_format(pinfo, item, &ei_kerberos_decrypted_keytype,
+ "%s checksum %d keytype %d "
+ "using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
+ reason, checksum, sek->keytype, sek->key_origin,
+ sek->id_str, sek->num_same,
+ sek->keyvalue[0] & 0xFF, sek->keyvalue[1] & 0xFF,
+ sek->keyvalue[2] & 0xFF, sek->keyvalue[3] & 0xFF);
+ sek = sek->same_list;
+ }
}
#endif /* HAVE_KRB5_PAC_VERIFY */
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index b047a67505..3354dcb91c 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -1078,14 +1078,26 @@ static void used_encryption_key(proto_tree *tree, packet_info *pinfo,
kerberos_private_data_t *private_data _U_,
enc_key_t *ek, int usage, tvbuff_t *cryptotvb)
{
+ proto_item *item = NULL;
+ enc_key_t *sek = NULL;
- proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
+ item = proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
cryptotvb, 0, 0,
"Decrypted keytype %d usage %d "
"using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
ek->keytype, usage, ek->key_origin, ek->id_str, ek->num_same,
ek->keyvalue[0] & 0xFF, ek->keyvalue[1] & 0xFF,
ek->keyvalue[2] & 0xFF, ek->keyvalue[3] & 0xFF);
+ sek = ek->same_list;
+ while (sek != NULL) {
+ expert_add_info_format(pinfo, item, &ei_kerberos_decrypted_keytype,
+ "Decrypted keytype %d usage %d "
+ "using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
+ sek->keytype, usage, sek->key_origin, sek->id_str, sek->num_same,
+ sek->keyvalue[0] & 0xFF, sek->keyvalue[1] & 0xFF,
+ sek->keyvalue[2] & 0xFF, sek->keyvalue[3] & 0xFF);
+ sek = sek->same_list;
+ }
}
#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
@@ -1098,7 +1110,10 @@ static void used_signing_key(proto_tree *tree, packet_info *pinfo,
krb5_cksumtype checksum,
const char *reason)
{
- proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
+ proto_item *item = NULL;
+ enc_key_t *sek = NULL;
+
+ item = proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype,
tvb, 0, 0,
"%s checksum %d keytype %d "
"using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
@@ -1106,6 +1121,17 @@ static void used_signing_key(proto_tree *tree, packet_info *pinfo,
ek->id_str, ek->num_same,
ek->keyvalue[0] & 0xFF, ek->keyvalue[1] & 0xFF,
ek->keyvalue[2] & 0xFF, ek->keyvalue[3] & 0xFF);
+ sek = ek->same_list;
+ while (sek != NULL) {
+ expert_add_info_format(pinfo, item, &ei_kerberos_decrypted_keytype,
+ "%s checksum %d keytype %d "
+ "using %s (id=%s same=%u) (%02x%02x%02x%02x...)",
+ reason, checksum, sek->keytype, sek->key_origin,
+ sek->id_str, sek->num_same,
+ sek->keyvalue[0] & 0xFF, sek->keyvalue[1] & 0xFF,
+ sek->keyvalue[2] & 0xFF, sek->keyvalue[3] & 0xFF);
+ sek = sek->same_list;
+ }
}
#endif /* HAVE_KRB5_PAC_VERIFY */
@@ -6060,7 +6086,7 @@ dissect_kerberos_EncryptedChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
/*--- End of included file: packet-kerberos-fn.c ---*/
-#line 3000 "./asn1/kerberos/packet-kerberos-template.c"
+#line 3026 "./asn1/kerberos/packet-kerberos-template.c"
#ifdef HAVE_KERBEROS
static const ber_sequence_t PA_ENC_TS_ENC_sequence[] = {
@@ -7378,7 +7404,7 @@ void proto_register_kerberos(void) {
NULL, HFILL }},
/*--- End of included file: packet-kerberos-hfarr.c ---*/
-#line 3473 "./asn1/kerberos/packet-kerberos-template.c"
+#line 3499 "./asn1/kerberos/packet-kerberos-template.c"
};
/* List of subtrees */
@@ -7477,7 +7503,7 @@ void proto_register_kerberos(void) {
&ett_kerberos_KrbFastArmoredRep,
/*--- End of included file: packet-kerberos-ettarr.c ---*/
-#line 3496 "./asn1/kerberos/packet-kerberos-template.c"
+#line 3522 "./asn1/kerberos/packet-kerberos-template.c"
};
static ei_register_info ei[] = {