diff options
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/asn1/kerberos/packet-kerberos-template.c | 21 | ||||
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 27 |
2 files changed, 33 insertions, 15 deletions
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c index 4fb758f057..4c22cd27d8 100644 --- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c +++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c @@ -282,6 +282,19 @@ add_encryption_key(packet_info *pinfo, int keytype, int keylength, const char *k /*XXX this needs to be freed later */ new_key->keyvalue=(char *)g_memdup(keyvalue, keylength); } + +static void used_encryption_key(proto_tree *tree, packet_info *pinfo, + enc_key_t *ek, int usage, tvbuff_t *cryptotvb) +{ + proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype, + cryptotvb, 0, 0, + "Decrypted keytype %d usage %d in frame %u " + "using %s (%02x%02x%02x%02x...)", + ek->keytype, usage, pinfo->fd->num, ek->key_origin, + ek->keyvalue[0] & 0xFF, ek->keyvalue[1] & 0xFF, + ek->keyvalue[2] & 0xFF, ek->keyvalue[3] & 0xFF); +} + #endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */ #if defined(HAVE_MIT_KERBEROS) @@ -416,9 +429,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo, if(ret == 0){ char *user_data; - expert_add_info_format(pinfo, NULL, &ei_kerberos_decrypted_keytype, - "Decrypted keytype %d in frame %u using %s", - ek->keytype, pinfo->num, ek->key_origin); + used_encryption_key(tree, pinfo, ek, usage, cryptotvb); user_data=data.data; if (datalen) { @@ -575,9 +586,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo, if((ret == 0) && (length>0)){ char *user_data; - expert_add_info_format(pinfo, NULL, &ei_kerberos_decrypted_keytype, - "Decrypted keytype %d in frame %u using %s", - ek->keytype, pinfo->num, ek->key_origin); + used_encryption_key(tree, pinfo, ek, usage, cryptotvb); krb5_crypto_destroy(krb5_ctx, crypto); /* return a private wmem_alloced blob to the caller */ diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c index aba4b0b8c0..c712aa83ca 100644 --- a/epan/dissectors/packet-kerberos.c +++ b/epan/dissectors/packet-kerberos.c @@ -590,6 +590,19 @@ add_encryption_key(packet_info *pinfo, int keytype, int keylength, const char *k /*XXX this needs to be freed later */ new_key->keyvalue=(char *)g_memdup(keyvalue, keylength); } + +static void used_encryption_key(proto_tree *tree, packet_info *pinfo, + enc_key_t *ek, int usage, tvbuff_t *cryptotvb) +{ + proto_tree_add_expert_format(tree, pinfo, &ei_kerberos_decrypted_keytype, + cryptotvb, 0, 0, + "Decrypted keytype %d usage %d in frame %u " + "using %s (%02x%02x%02x%02x...)", + ek->keytype, pinfo->fd->num, usage, ek->key_origin, + ek->keyvalue[0] & 0xFF, ek->keyvalue[1] & 0xFF, + ek->keyvalue[2] & 0xFF, ek->keyvalue[3] & 0xFF); +} + #endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */ #if defined(HAVE_MIT_KERBEROS) @@ -724,9 +737,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo, if(ret == 0){ char *user_data; - expert_add_info_format(pinfo, NULL, &ei_kerberos_decrypted_keytype, - "Decrypted keytype %d in frame %u using %s", - ek->keytype, pinfo->num, ek->key_origin); + used_encryption_key(tree, pinfo, ek, usage, cryptotvb); user_data=data.data; if (datalen) { @@ -883,9 +894,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo, if((ret == 0) && (length>0)){ char *user_data; - expert_add_info_format(pinfo, NULL, &ei_kerberos_decrypted_keytype, - "Decrypted keytype %d in frame %u using %s", - ek->keytype, pinfo->num, ek->key_origin); + used_encryption_key(tree, pinfo, ek, usage, cryptotvb); krb5_crypto_destroy(krb5_ctx, crypto); /* return a private wmem_alloced blob to the caller */ @@ -4648,7 +4657,7 @@ dissect_kerberos_EncryptedChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_ /*--- End of included file: packet-kerberos-fn.c ---*/ -#line 1909 "./asn1/kerberos/packet-kerberos-template.c" +#line 1918 "./asn1/kerberos/packet-kerberos-template.c" /* Make wrappers around exported functions for now */ int @@ -5856,7 +5865,7 @@ void proto_register_kerberos(void) { NULL, HFILL }}, /*--- End of included file: packet-kerberos-hfarr.c ---*/ -#line 2296 "./asn1/kerberos/packet-kerberos-template.c" +#line 2305 "./asn1/kerberos/packet-kerberos-template.c" }; /* List of subtrees */ @@ -5946,7 +5955,7 @@ void proto_register_kerberos(void) { &ett_kerberos_KrbFastArmoredRep, /*--- End of included file: packet-kerberos-ettarr.c ---*/ -#line 2312 "./asn1/kerberos/packet-kerberos-template.c" +#line 2321 "./asn1/kerberos/packet-kerberos-template.c" }; static ei_register_info ei[] = { |