diff --git a/lib/gssapi/ntlm/accept_sec_context.c b/lib/gssapi/ntlm/accept_sec_context.c index 10db28ad3..5de74f8f8 100644 --- a/lib/gssapi/ntlm/accept_sec_context.c +++ b/lib/gssapi/ntlm/accept_sec_context.c @@ -180,7 +180,10 @@ handle_type3(OM_uint32 *minor_status, &ctx->sessionkey); if (ret == 0 && ctx->sessionkey.length == 16) { ctx->status |= STATUS_SESSIONKEY; - RC4_set_key(&ctx->crypto.key, + RC4_set_key(&ctx->crypto_send.key, + ctx->sessionkey.length, + ctx->sessionkey.data); + RC4_set_key(&ctx->crypto_recv.key, ctx->sessionkey.length, ctx->sessionkey.data); } diff --git a/lib/gssapi/ntlm/init_sec_context.c b/lib/gssapi/ntlm/init_sec_context.c index 9740dd4c9..a5a7eaf8f 100644 --- a/lib/gssapi/ntlm/init_sec_context.c +++ b/lib/gssapi/ntlm/init_sec_context.c @@ -217,7 +217,10 @@ _gss_ntlm_init_sec_context } ctx->status |= STATUS_SESSIONKEY; - RC4_set_key(&ctx->crypto.key, + RC4_set_key(&ctx->crypto_recv.key, + ctx->sessionkey.length, + ctx->sessionkey.data); + RC4_set_key(&ctx->crypto_send.key, ctx->sessionkey.length, ctx->sessionkey.data); diff --git a/lib/gssapi/ntlm/ntlm.h b/lib/gssapi/ntlm/ntlm.h index 0901a55b7..623f6668f 100644 --- a/lib/gssapi/ntlm/ntlm.h +++ b/lib/gssapi/ntlm/ntlm.h @@ -73,10 +73,9 @@ typedef struct { krb5_data sessionkey; struct { - uint32_t send_seq; - uint32_t recv_seq; + uint32_t seq; RC4_KEY key; - } crypto; + } crypto_send, crypto_recv; } *ntlm_ctx; typedef struct {