diff options
Diffstat (limited to 'epan/dissectors/asn1/kerberos/kerberos.cnf')
-rw-r--r-- | epan/dissectors/asn1/kerberos/kerberos.cnf | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/epan/dissectors/asn1/kerberos/kerberos.cnf b/epan/dissectors/asn1/kerberos/kerberos.cnf index dadbddd92a..93667cdce2 100644 --- a/epan/dissectors/asn1/kerberos/kerberos.cnf +++ b/epan/dissectors/asn1/kerberos/kerberos.cnf @@ -157,7 +157,11 @@ guint32 msgtype; offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U2Self); break; case KRB5_PADATA_S4U_X509_USER: - offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U_X509_USER); + if(!private_data->is_enc_padata) { + offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U_X509_USER); + }else{ + offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, NULL); + } break; case KRB5_PA_PROV_SRV_LOCATION: offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_krb5_PA_PROV_SRV_LOCATION); @@ -410,6 +414,13 @@ AuthorizationData/_item/ad-type STRINGS=VALS(krb5_ad_types) call_kerberos_callbacks(actx->pinfo, tree, new_tvb, KRB_CBTAG_PRIV_USER_DATA, (kerberos_callbacks*)actx->private_data); } +#.FN_HDR EncKDCRepPart/encrypted-pa-data + kerberos_private_data_t* private_data = kerberos_get_private_data(actx); + private_data->is_enc_padata = TRUE; + +#.FN_FTR EncKDCRepPart/encrypted-pa-data + private_data->is_enc_padata = FALSE; + #.FN_HDR AS-REQ kerberos_private_data_t* private_data = kerberos_get_private_data(actx); private_data->is_request = TRUE; |