From 769f86eb3343d9de1fc545beb9553c71068b2f72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 23 Jun 2009 03:45:02 +0000 Subject: [PATCH] start of unpack stream if there is one. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@25287 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/krb5/aeap.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/lib/gssapi/krb5/aeap.c b/lib/gssapi/krb5/aeap.c index 09dd7105e..74ede42d1 100644 --- a/lib/gssapi/krb5/aeap.c +++ b/lib/gssapi/krb5/aeap.c @@ -57,6 +57,15 @@ _gk_wrap_iov(OM_uint32 * minor_status, return GSS_S_FAILURE; } +OM_uint32 +unpack_stream(OM_uint32 *minor_status, gss_iov_buffer_desc *stream, + gss_iov_buffer_desc *iov, int iov_count) +{ + return GSS_S_FAILURE; +} + + + OM_uint32 GSSAPI_LIB_FUNCTION _gk_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, @@ -65,15 +74,25 @@ _gk_unwrap_iov(OM_uint32 *minor_status, gss_iov_buffer_desc *iov, int iov_count) { - const gsskrb5_ctx ctx = (const gsskrb5_ctx) context_handle; - krb5_context context; - - GSSAPI_KRB5_INIT (&context); + const gsskrb5_ctx ctx = (const gsskrb5_ctx) context_handle; + krb5_context context; + gss_iov_buffer_desc *stream; - if (ctx->more_flags & IS_CFX) - return _gssapi_unwrap_cfx_iov(minor_status, ctx, context, - conf_state, qop_state, iov, iov_count); + GSSAPI_KRB5_INIT (&context); + + stream = _gk_find_buffer(iov, iov_count, GSS_IOV_BUFFER_TYPE_STREAM); + if (stream) { + OM_uint32 major_status; + major_status = unpack_stream(minor_status, stream, iov, iov_count); + if (major_status) + return major_status; + } + + if (ctx->more_flags & IS_CFX) + return _gssapi_unwrap_cfx_iov(minor_status, ctx, context, + conf_state, qop_state, iov, iov_count); + return GSS_S_FAILURE; } -- 2.11.4.GIT