Commit 750203bd authored by Steve Holme's avatar Steve Holme
Browse files

sasl_gssapi: Fixed honouring of no mutual authentication

parent 0fcd74b8
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -41,9 +41,13 @@ OM_uint32 Curl_gss_init_sec_context(
    gss_channel_bindings_t input_chan_bindings,
    gss_buffer_t input_token,
    gss_buffer_t output_token,
    const bool mutual_auth,
    OM_uint32 *ret_flags)
{
  OM_uint32 req_flags = GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG;
  OM_uint32 req_flags = GSS_C_REPLAY_FLAG;

  if(mutual_auth)
    req_flags |= GSS_C_MUTUAL_FLAG;

  if(data->set.gssapi_delegation & CURLGSSAPI_DELEGATION_POLICY_FLAG) {
#ifdef GSS_C_DELEG_POLICY_FLAG
+1 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ OM_uint32 Curl_gss_init_sec_context(
    gss_channel_bindings_t input_chan_bindings,
    gss_buffer_t input_token,
    gss_buffer_t output_token,
    const bool mutual_auth,
    OM_uint32 *ret_flags);

/* Helper to log a GSS - API error status */
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,6 @@ CURLcode Curl_sasl_create_gssapi_user_message(struct SessionHandle *data,

  (void) userp;
  (void) passwdp;
  (void) mutual_auth;

  if(krb5->context == GSS_C_NO_CONTEXT) {
    /* Generate our SPN */
@@ -155,6 +154,7 @@ CURLcode Curl_sasl_create_gssapi_user_message(struct SessionHandle *data,
                                               GSS_C_NO_CHANNEL_BINDINGS,
                                               &input_token,
                                               &output_token,
                                               mutual_auth,
                                               NULL);

  Curl_safefree(input_token.value);
+1 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ int Curl_input_negotiate(struct connectdata *conn, bool proxy,
                                           GSS_C_NO_CHANNEL_BINDINGS,
                                           &input_token,
                                           &output_token,
                                           TRUE,
                                           NULL);
  Curl_safefree(input_token.value);

+1 −0
Original line number Diff line number Diff line
@@ -236,6 +236,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
                                      &chan,
                                      gssresp,
                                      &output_buffer,
                                      TRUE,
                                      NULL);

      if(gssresp) {
Loading