⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 context_stubs.c

📁 samba最新软件
💻 C
📖 第 1 页 / 共 2 页
字号:
    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_wrap_size_limit(minor_status,			       ctx->negotiated_ctx_id,			       conf_req_flag,			       qop_req,			       req_output_size,			       max_input_size);}OM_uint32 _gss_spnego_export_sec_context (            OM_uint32 * minor_status,            gss_ctx_id_t * context_handle,            gss_buffer_t interprocess_token           ){    gssspnego_ctx ctx;    OM_uint32 ret;    *minor_status = 0;    if (context_handle == NULL) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)*context_handle;    if (ctx == NULL)	return GSS_S_NO_CONTEXT;    HEIMDAL_MUTEX_lock(&ctx->ctx_id_mutex);    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);	return GSS_S_NO_CONTEXT;    }    ret = gss_export_sec_context(minor_status,				 &ctx->negotiated_ctx_id,				 interprocess_token);    if (ret == GSS_S_COMPLETE) {	ret = _gss_spnego_internal_delete_sec_context(minor_status,					     context_handle,					     GSS_C_NO_BUFFER);	if (ret == GSS_S_COMPLETE)	    return GSS_S_COMPLETE;    }    HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);    return ret;}OM_uint32 _gss_spnego_import_sec_context (            OM_uint32 * minor_status,            const gss_buffer_t interprocess_token,            gss_ctx_id_t *context_handle           ){    OM_uint32 ret, minor;    gss_ctx_id_t context;    gssspnego_ctx ctx;    ret = _gss_spnego_alloc_sec_context(minor_status, &context);    if (ret != GSS_S_COMPLETE) {	return ret;    }    ctx = (gssspnego_ctx)context;    HEIMDAL_MUTEX_lock(&ctx->ctx_id_mutex);    ret = gss_import_sec_context(minor_status,				 interprocess_token,				 &ctx->negotiated_ctx_id);    if (ret != GSS_S_COMPLETE) {	_gss_spnego_internal_delete_sec_context(&minor, context_handle, GSS_C_NO_BUFFER);	return ret;    }    ctx->open = 1;    /* don't bother filling in the rest of the fields */    HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);    *context_handle = (gss_ctx_id_t)ctx;    return GSS_S_COMPLETE;}OM_uint32 _gss_spnego_inquire_names_for_mech (            OM_uint32 * minor_status,            const gss_OID mechanism,            gss_OID_set * name_types           ){    gss_OID_set mechs, names, n;    OM_uint32 ret, junk;    int i, j;    *name_types = NULL;    ret = spnego_supported_mechs(minor_status, &mechs);    if (ret != GSS_S_COMPLETE)	return ret;    ret = gss_create_empty_oid_set(minor_status, &names);    if (ret != GSS_S_COMPLETE)	goto out;    for (i = 0; i < mechs->count; i++) {	ret = gss_inquire_names_for_mech(minor_status,					 &mechs->elements[i],					 &n);	if (ret)	    continue;	for (j = 0; j < n->count; j++)	    gss_add_oid_set_member(minor_status,				   &n->elements[j],				   &names);	gss_release_oid_set(&junk, &n);    }    ret = GSS_S_COMPLETE;    *name_types = names;out:    gss_release_oid_set(&junk, &mechs);    return GSS_S_COMPLETE;}OM_uint32 _gss_spnego_inquire_mechs_for_name (            OM_uint32 * minor_status,            const gss_name_t input_name,            gss_OID_set * mech_types           ){    OM_uint32 ret, junk;    ret = gss_create_empty_oid_set(minor_status, mech_types);    if (ret)	return ret;    ret = gss_add_oid_set_member(minor_status,				 GSS_SPNEGO_MECHANISM,				 mech_types);    if (ret)	gss_release_oid_set(&junk, mech_types);    return ret;}OM_uint32 _gss_spnego_canonicalize_name (            OM_uint32 * minor_status,            const gss_name_t input_name,            const gss_OID mech_type,            gss_name_t * output_name           ){    /* XXX */    return gss_duplicate_name(minor_status, input_name, output_name);}OM_uint32 _gss_spnego_duplicate_name (            OM_uint32 * minor_status,            const gss_name_t src_name,            gss_name_t * dest_name           ){    return gss_duplicate_name(minor_status, src_name, dest_name);}OM_uint32 _gss_spnego_sign           (OM_uint32 * minor_status,            gss_ctx_id_t context_handle,            int qop_req,            gss_buffer_t message_buffer,            gss_buffer_t message_token           ){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_sign(minor_status,		    ctx->negotiated_ctx_id,		    qop_req,		    message_buffer,		    message_token);}OM_uint32 _gss_spnego_verify           (OM_uint32 * minor_status,            gss_ctx_id_t context_handle,            gss_buffer_t message_buffer,            gss_buffer_t token_buffer,            int * qop_state           ){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_verify(minor_status,		      ctx->negotiated_ctx_id,		      message_buffer,		      token_buffer,		      qop_state);}OM_uint32 _gss_spnego_seal           (OM_uint32 * minor_status,            gss_ctx_id_t context_handle,            int conf_req_flag,            int qop_req,            gss_buffer_t input_message_buffer,            int * conf_state,            gss_buffer_t output_message_buffer           ){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_seal(minor_status,		    ctx->negotiated_ctx_id,		    conf_req_flag,		    qop_req,		    input_message_buffer,		    conf_state,		    output_message_buffer);}OM_uint32 _gss_spnego_unseal           (OM_uint32 * minor_status,            gss_ctx_id_t context_handle,            gss_buffer_t input_message_buffer,            gss_buffer_t output_message_buffer,            int * conf_state,            int * qop_state           ){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_unseal(minor_status,		      ctx->negotiated_ctx_id,		      input_message_buffer,		      output_message_buffer,		      conf_state,		      qop_state);}#if 0OM_uint32 _gss_spnego_unwrap_ex           (OM_uint32 * minor_status,            const gss_ctx_id_t context_handle,	    const gss_buffer_t token_header_buffer,	    const gss_buffer_t associated_data_buffer,	    const gss_buffer_t input_message_buffer,	    gss_buffer_t output_message_buffer,	    int * conf_state,	    gss_qop_t * qop_state){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_unwrap_ex(minor_status,			 ctx->negotiated_ctx_id,			 token_header_buffer,			 associated_data_buffer,			 input_message_buffer,			 output_message_buffer,			 conf_state,			 qop_state);}OM_uint32 _gss_spnego_wrap_ex           (OM_uint32 * minor_status,            const gss_ctx_id_t context_handle,            int conf_req_flag,            gss_qop_t qop_req,            const gss_buffer_t associated_data_buffer,            const gss_buffer_t input_message_buffer,            int * conf_state,            gss_buffer_t output_token_buffer,            gss_buffer_t output_message_buffer	   ){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    if ((ctx->mech_flags & GSS_C_DCE_STYLE) == 0 &&	associated_data_buffer->length != input_message_buffer->length) {	*minor_status = EINVAL;	return GSS_S_BAD_QOP;    }    return gss_wrap_ex(minor_status,		       ctx->negotiated_ctx_id,		       conf_req_flag,		       qop_req,		       associated_data_buffer,		       input_message_buffer,		       conf_state,		       output_token_buffer,		       output_message_buffer);}OM_uint32 _gss_spnego_complete_auth_token           (OM_uint32 * minor_status,            const gss_ctx_id_t context_handle,	    gss_buffer_t input_message_buffer){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_complete_auth_token(minor_status,				   ctx->negotiated_ctx_id,				   input_message_buffer);}#endifOM_uint32 _gss_spnego_inquire_sec_context_by_oid           (OM_uint32 * minor_status,            const gss_ctx_id_t context_handle,            const gss_OID desired_object,            gss_buffer_set_t *data_set){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_inquire_sec_context_by_oid(minor_status,					  ctx->negotiated_ctx_id,					  desired_object,					  data_set);}OM_uint32 _gss_spnego_set_sec_context_option           (OM_uint32 * minor_status,            gss_ctx_id_t * context_handle,            const gss_OID desired_object,            const gss_buffer_t value){    gssspnego_ctx ctx;    *minor_status = 0;    if (context_handle == NULL || *context_handle == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    ctx = (gssspnego_ctx)context_handle;    if (ctx->negotiated_ctx_id == GSS_C_NO_CONTEXT) {	return GSS_S_NO_CONTEXT;    }    return gss_set_sec_context_option(minor_status,				      &ctx->negotiated_ctx_id,				      desired_object,				      value);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -