gss_init_sec_context error for spnego
Stephen Ince
since at opendemand.com
Mon Oct 20 16:57:53 EDT 2008
I think my hunch was correct, IIS is ignoring the req_flags. Everything
worked when I tested apache. The format of the token coming back from IIS
must be encrypted. I did an ethereal snoop and noticed that
gss_init_sec_context fails and does not make any network calls.
Is there a way I can check for the format of the IIS token from the first
gss_init_sec_context? I do not tell IIS to encrypt the token.
e.g.
req_flags= GSS_C_MUTUAL_FLAG|GSS_C_DELEG_FLAG|GSS_C_REPLAY_FLAG
gss_init_sec_context
check the ret_flags if the token from IIS will be encrypted?
get and decode input negotiate from IE and decrypt or unwrap token
gss_init_sec_context
Steve
----- Original Message -----
From: "Stephen Ince" <since at opendemand.com>
To: <krbdev at mit.edu>
Sent: Monday, October 20, 2008 4:33 PM
Subject: Re: gss_init_sec_context error for spnego
> Simon.
> Thx for the advice. I am going to switch back to apache to verify that
> the input_token is correct. I can do more tracing through apache than IIS.
> I did read in the Mozilla code that their base64 decode was not that
> robust
> as IE. I am not using the same routine but the problem could be the same.
>
> int decode_len = apr_base64_decode_len(header);
> input_token.value = (char*)malloc(decode_len +1);
> input_token.length = apr_base64_decode(input_token.value,header);
>
> Steve
> ----- Original Message -----
> From: "Simon Josefsson" <simon at josefsson.org>
> To: "Stephen Ince" <since at opendemand.com>
> Sent: Monday, October 20, 2008 10:47 AM
> Subject: Re: gss_init_sec_context error for spnego
>
>
>> Stephen, I don't know how to debug it further -- the error message
>> indicates that the token is invalid. So either the code generating it
>> is buggy, or the code that parses it is buggy, or (and definitely most
>> likely) your code that passes the token between the generator and parser
>> is buggy and corrupts the token somehow.
>>
>> Are you sure 'input_token' is initialized properly with the token data?
>>
>> /Simon
>>
>> "Stephen Ince" <since at opendemand.com> writes:
>>
>>> Simon,
>>> Thx for your response.
>>> I do check for error_status. I think IIS is ignoring the req_flags
>>> and maybe encypting. When I had the req_flags set 0. It still returns
>>> GSS_S_CONTINUE_NEEDED. Is there anyway I can if I need to unwrap the
>>> token.
>>>
>>> major_status = gss_init_sec_context(&minor_status,
>>> if (major_status == GSS_S_COMPLETE) {
>>> }
>>> else if (major_status == GSS_S_CONTINUE_NEEDED) {
>>> }
>>>
>>> if (GSS_ERROR(major_status)) {
>>> /* Curl_cleanup_negotiate(conn->data) ??? */
>>> log_gss_error(major_status,minor_status,"gss_init_sec_context()
>>> failed: ");
>>> return APR_EGENERAL;
>>> }
>>>
>>> ----- Original Message -----
>>> From: "Simon Josefsson" <simon at josefsson.org>
>>> To: "Stephen Ince" <since at opendemand.com>
>>> Cc: <krbdev at mit.edu>
>>> Sent: Monday, October 20, 2008 8:16 AM
>>> Subject: Re: gss_init_sec_context error for spnego
>>>
>>>
>>>> "Stephen Ince" <since at opendemand.com> writes:
>>>>
>>>>> I am getting a 589824 major status for gss_init_sec_context. Does
>>>>> any know
>>>>> why? It is for the second call to gss_init_sec_context.
>>>>>
>>>>> Basically I am doing the following.
>>>>>
>>>>> major_status = gss_init_sec_context(&minor_status,
>>>>> GSS_C_NO_CREDENTIAL,
>>>>> &neg_ctx->context,
>>>>> neg_ctx->server_name,
>>>>> &gss_spnego_mech_oid_desc,
>>>>> GSS_C_MUTUAL_FLAG|GSS_C_DELEG_FLAG|GSS_C_REPLAY_FLAG ,
>>>>> GSS_C_INDEFINITE,
>>>>> GSS_C_NO_CHANNEL_BINDINGS,
>>>>> &input_token,
>>>>> NULL,
>>>>> &output_token,
>>>>> NULL,
>>>>> NULL);
>>>>>
>>>>> On the first call to gss_init_sec_context the variable
>>>>> neg_ctx->context is
>>>>> intialized to GSS_C_NO_CONTEXT
>>>>> I fail on the second call to gss_init_sec_context
>>>>
>>>> Did you check error code on the first gss_init_sec_context? Maybe it
>>>> didn't work.
>>>>
>>>> /Simon
>>>>
>>>> jas at mocca:~$ gss -m 589824
>>>> GSS-API major status code 589824 (0x90000).
>>>>
>>>> MSB
>>>> LSB
>>>>
>>>> +-----------------+-----------------+---------------------------------+
>>>> | Calling Error | Routine Error | Supplementary Info
>>>> |
>>>> | 0 0 0 0 0 0 0 0 | 0 0 0 0 1 0 0 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>>> |
>>>>
>>>> +-----------------+-----------------+---------------------------------+
>>>> Bit 31 24 23 16 15
>>>> 0
>>>>
>>>> Masked routine error 589824 (0x90000) shifted into 9 (0x9):
>>>> A token was invalid
>>>>
>>>> jas at mocca:~$
>>>>
>>
>
> _______________________________________________
> krbdev mailing list krbdev at mit.edu
> https://mailman.mit.edu/mailman/listinfo/krbdev
>
More information about the krbdev
mailing list