diff options
author | Simo Sorce <simo@redhat.com> | 2014-04-05 16:24:52 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-05-04 17:21:06 -0400 |
commit | bc52b7a308c90cfdd8dfcd8dab09c67bcd578de2 (patch) | |
tree | 44135cbd9e24b983c7ff2f2993b00160179ff2a6 /src/ntlm.c | |
parent | 2fef5bb26b1141f0f42bb5cb488c0eaa06a76d78 (diff) | |
download | gss-ntlmssp-bc52b7a308c90cfdd8dfcd8dab09c67bcd578de2.tar.gz gss-ntlmssp-bc52b7a308c90cfdd8dfcd8dab09c67bcd578de2.tar.xz gss-ntlmssp-bc52b7a308c90cfdd8dfcd8dab09c67bcd578de2.zip |
Add support for setting CBT in the client
Diffstat (limited to 'src/ntlm.c')
-rw-r--r-- | src/ntlm.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -799,6 +799,7 @@ done: int ntlm_process_target_info(struct ntlm_ctx *ctx, struct ntlm_buffer *in, const char *server, + struct ntlm_buffer *unhashed_cb, struct ntlm_buffer *out, uint64_t *out_srv_time, bool *add_mic) @@ -811,6 +812,8 @@ int ntlm_process_target_info(struct ntlm_ctx *ctx, char *av_target_name = NULL; uint32_t av_flags = 0; uint64_t srv_time = 0; + uint8_t cb[16] = { 0 }; + struct ntlm_buffer av_cb = { cb, 16 }; int ret = 0; /* TODO: check that returned netbios/dns names match ? */ @@ -837,6 +840,11 @@ int ntlm_process_target_info(struct ntlm_ctx *ctx, *add_mic = true; } + if (unhashed_cb->length > 0) { + ret = ntlm_hash_channel_bindings(unhashed_cb, &av_cb); + if (ret) goto done; + } + if (!av_target_name && server) { av_target_name = strdup(server); if (!av_target_name) { @@ -851,7 +859,7 @@ int ntlm_process_target_info(struct ntlm_ctx *ctx, nb_computer_name, nb_domain_name, dns_computer_name, dns_domain_name, dns_tree_name, &av_flags, &srv_time, - NULL, av_target_name, NULL, out); + NULL, av_target_name, &av_cb, out); done: safefree(nb_computer_name); |