diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2008-09-29 18:38:45 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2008-09-29 18:38:45 +0000 |
commit | 7d3592fed28e7073a72fd8eba2c5bd5888f200c7 (patch) | |
tree | d2904d0210930860da242872c7196c1ce7e19b4a /epan/dissectors/packet-kerberos.c | |
parent | f5ef397375a0e2b981d64d02f5ba465c2da478a5 (diff) |
from metze
add support for decryption of gssapi auth type 16
svn path=/trunk/; revision=26293
Diffstat (limited to 'epan/dissectors/packet-kerberos.c')
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c index b3338ef8a9..d83102c5a8 100644 --- a/epan/dissectors/packet-kerberos.c +++ b/epan/dissectors/packet-kerberos.c @@ -5372,10 +5372,30 @@ static int wrap_dissect_gss_kerb(tvbuff_t *tvb, int offset, packet_info *pinfo, } -static dcerpc_auth_subdissector_fns gss_kerb_auth_fns = { +static dcerpc_auth_subdissector_fns gss_kerb_auth_connect_fns = { wrap_dissect_gss_kerb, /* Bind */ wrap_dissect_gss_kerb, /* Bind ACK */ - NULL, /* AUTH3 */ + wrap_dissect_gss_kerb, /* AUTH3 */ + NULL, /* Request verifier */ + NULL, /* Response verifier */ + NULL, /* Request data */ + NULL /* Response data */ +}; + +static dcerpc_auth_subdissector_fns gss_kerb_auth_sign_fns = { + wrap_dissect_gss_kerb, /* Bind */ + wrap_dissect_gss_kerb, /* Bind ACK */ + wrap_dissect_gss_kerb, /* AUTH3 */ + wrap_dissect_gssapi_verf, /* Request verifier */ + wrap_dissect_gssapi_verf, /* Response verifier */ + NULL, /* Request data */ + NULL /* Response data */ +}; + +static dcerpc_auth_subdissector_fns gss_kerb_auth_seal_fns = { + wrap_dissect_gss_kerb, /* Bind */ + wrap_dissect_gss_kerb, /* Bind ACK */ + wrap_dissect_gss_kerb, /* AUTH3 */ wrap_dissect_gssapi_verf, /* Request verifier */ wrap_dissect_gssapi_verf, /* Response verifier */ wrap_dissect_gssapi_payload, /* Request data */ @@ -5397,13 +5417,17 @@ proto_reg_handoff_kerberos(void) dissector_add("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp); dissector_add("tcp.port", TCP_PORT_KERBEROS, kerberos_handle_tcp); + register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_CONNECT, + DCE_C_RPC_AUTHN_PROTOCOL_GSS_KERBEROS, + &gss_kerb_auth_connect_fns); + register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_PKT_INTEGRITY, DCE_C_RPC_AUTHN_PROTOCOL_GSS_KERBEROS, - &gss_kerb_auth_fns); + &gss_kerb_auth_sign_fns); register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_PKT_PRIVACY, DCE_C_RPC_AUTHN_PROTOCOL_GSS_KERBEROS, - &gss_kerb_auth_fns); + &gss_kerb_auth_seal_fns); } |