diff options
Diffstat (limited to 'epan/dissectors/packet-kerberos.c')
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 36 |
1 files changed, 31 insertions, 5 deletions
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[] = { |