(init_auth): There is no OID wrapping on the reply token. From Andrew Bartlett

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18934 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-11-07 17:40:01 +00:00
parent 9956ae0200
commit 1a7ec40448

View File

@@ -549,18 +549,18 @@ failure:
static OM_uint32 static OM_uint32
repl_mutual repl_mutual
(OM_uint32 * minor_status, (OM_uint32 * minor_status,
gsskrb5_ctx ctx, gsskrb5_ctx ctx,
const gss_OID mech_type, const gss_OID mech_type,
OM_uint32 req_flags, OM_uint32 req_flags,
OM_uint32 time_req, OM_uint32 time_req,
const gss_channel_bindings_t input_chan_bindings, const gss_channel_bindings_t input_chan_bindings,
const gss_buffer_t input_token, const gss_buffer_t input_token,
gss_OID * actual_mech_type, gss_OID * actual_mech_type,
gss_buffer_t output_token, gss_buffer_t output_token,
OM_uint32 * ret_flags, OM_uint32 * ret_flags,
OM_uint32 * time_rec OM_uint32 * time_rec
) )
{ {
OM_uint32 ret; OM_uint32 ret;
krb5_error_code kret; krb5_error_code kret;
@@ -574,13 +574,22 @@ repl_mutual
if (actual_mech_type) if (actual_mech_type)
*actual_mech_type = GSS_KRB5_MECHANISM; *actual_mech_type = GSS_KRB5_MECHANISM;
ret = _gsskrb5_decapsulate (minor_status, input_token, &indata, if (ctx->flags & GSS_C_DCE_STYLE) {
"\x02\x00", GSS_KRB5_MECHANISM); /* There is no OID wrapping. */
if (ret) { indata.length = input_token->length;
/* XXX - Handle AP_ERROR */ indata.data = input_token->value;
return ret; } else {
ret = _gsskrb5_decapsulate (minor_status,
input_token,
&indata,
"\x02\x00",
GSS_KRB5_MECHANISM);
if (ret) {
/* XXX - Handle AP_ERROR */
return ret;
}
} }
kret = krb5_rd_rep (_gsskrb5_context, kret = krb5_rd_rep (_gsskrb5_context,
ctx->auth_context, ctx->auth_context,
&indata, &indata,
@@ -610,8 +619,8 @@ repl_mutual
*minor_status = 0; *minor_status = 0;
if (time_rec) { if (time_rec) {
ret = _gsskrb5_lifetime_left(minor_status, ret = _gsskrb5_lifetime_left(minor_status,
ctx->lifetime, ctx->lifetime,
time_rec); time_rec);
} else { } else {
ret = GSS_S_COMPLETE; ret = GSS_S_COMPLETE;
} }