diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-02-19 05:40:29 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2020-05-26 09:24:20 +0000 |
commit | 975e8531a72e4f71eac872eaa145d1146abe2094 (patch) | |
tree | 9493c91e710668ac09fad408e529c6ed737121e5 /epan/dissectors | |
parent | b95a1b652f22fe734403dd8c728607e35c35f0c7 (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.c | 30 | ||||
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 36 |
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[] = { |