merge mechglue code
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17701 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -2,98 +2,178 @@
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
|
||||
AM_CPPFLAGS += -I$(srcdir)/../krb5 \
|
||||
-I${srcdir}/../asn1/include \
|
||||
-I$(srcdir)/../asn1 \
|
||||
-I$(srcdir) \
|
||||
-I$(srcdir)/krb5 \
|
||||
-I$(srcdir)/spnego \
|
||||
-I$(srcdir)/mech \
|
||||
$(INCLUDE_des) \
|
||||
$(INCLUDE_krb4)
|
||||
|
||||
lib_LTLIBRARIES = libgssapi.la
|
||||
|
||||
krb5src = \
|
||||
krb5/8003.c \
|
||||
krb5/accept_sec_context.c \
|
||||
krb5/acquire_cred.c \
|
||||
krb5/add_cred.c \
|
||||
krb5/add_oid_set_member.c \
|
||||
krb5/address_to_krb5addr.c \
|
||||
krb5/arcfour.c \
|
||||
krb5/canonicalize_name.c \
|
||||
krb5/ccache_name.c \
|
||||
krb5/cfx.c \
|
||||
krb5/cfx.h \
|
||||
krb5/compare_name.c \
|
||||
krb5/compat.c \
|
||||
krb5/context_time.c \
|
||||
krb5/copy_ccache.c \
|
||||
krb5/create_emtpy_oid_set.c \
|
||||
krb5/decapsulate.c \
|
||||
krb5/delete_sec_context.c \
|
||||
krb5/display_name.c \
|
||||
krb5/display_status.c \
|
||||
krb5/duplicate_name.c \
|
||||
krb5/encapsulate.c \
|
||||
krb5/export_name.c \
|
||||
krb5/export_sec_context.c \
|
||||
krb5/external.c \
|
||||
krb5/get_mic.c \
|
||||
krb5/gssapi_locl.h \
|
||||
krb5/gsskrb5-private.h \
|
||||
krb5/import_name.c \
|
||||
krb5/import_sec_context.c \
|
||||
krb5/indicate_mechs.c \
|
||||
krb5/init.c \
|
||||
krb5/init_sec_context.c \
|
||||
krb5/inquire_context.c \
|
||||
krb5/inquire_cred.c \
|
||||
krb5/inquire_cred_by_mech.c \
|
||||
krb5/inquire_cred_by_oid.c \
|
||||
krb5/inquire_mechs_for_name.c \
|
||||
krb5/inquire_names_for_mech.c \
|
||||
krb5/inquire_sec_context_by_oid.c \
|
||||
krb5/test_oid_set_member.c \
|
||||
krb5/process_context_token.c \
|
||||
krb5/release_buffer.c \
|
||||
krb5/release_cred.c \
|
||||
krb5/release_name.c \
|
||||
krb5/release_oid_set.c \
|
||||
krb5/sequence.c \
|
||||
krb5/set_sec_context_option.c \
|
||||
krb5/ticket_flags.c \
|
||||
krb5/unwrap.c \
|
||||
krb5/v1.c \
|
||||
krb5/verify_mic.c \
|
||||
krb5/wrap.c
|
||||
|
||||
libgssapi_la_SOURCES = \
|
||||
$(BUILT_SOURCES) \
|
||||
$(krb5src) \
|
||||
mech/context.h \
|
||||
mech/cred.h \
|
||||
mech/gss_accept_sec_context.c \
|
||||
mech/gss_acquire_cred.c \
|
||||
mech/gss_add_cred.c \
|
||||
mech/gss_add_oid_set_member.c \
|
||||
mech/gss_buffer_set.c \
|
||||
mech/gss_canonicalize_name.c \
|
||||
mech/gss_compare_name.c \
|
||||
mech/gss_context_time.c \
|
||||
mech/gss_create_empty_oid_set.c \
|
||||
mech/gss_decapsulate_token.c \
|
||||
mech/gss_delete_sec_context.c \
|
||||
mech/gss_display_name.c \
|
||||
mech/gss_display_status.c \
|
||||
mech/gss_duplicate_name.c \
|
||||
mech/gss_duplicate_oid.c \
|
||||
mech/gss_encapsulate_token.c \
|
||||
mech/gss_export_name.c \
|
||||
mech/gss_export_sec_context.c \
|
||||
mech/gss_get_mic.c \
|
||||
mech/gss_import_name.c \
|
||||
mech/gss_import_sec_context.c \
|
||||
mech/gss_indicate_mechs.c \
|
||||
mech/gss_init_sec_context.c \
|
||||
mech/gss_inquire_context.c \
|
||||
mech/gss_inquire_cred.c \
|
||||
mech/gss_inquire_cred_by_mech.c \
|
||||
mech/gss_inquire_mechs_for_name.c \
|
||||
mech/gss_inquire_names_for_mech.c \
|
||||
mech/gss_krb5.c \
|
||||
mech/gss_mech_switch.c \
|
||||
mech/gss_names.c \
|
||||
mech/gss_oid_equal.c \
|
||||
mech/gss_oid_to_str.c \
|
||||
mech/gss_process_context_token.c \
|
||||
mech/gss_release_buffer.c \
|
||||
mech/gss_release_cred.c \
|
||||
mech/gss_release_name.c \
|
||||
mech/gss_release_oid_set.c \
|
||||
mech/gss_seal.c \
|
||||
mech/gss_sign.c \
|
||||
mech/gss_test_oid_set_member.c \
|
||||
mech/gss_unseal.c \
|
||||
mech/gss_unwrap.c \
|
||||
mech/gss_utils.c \
|
||||
mech/gss_verify.c \
|
||||
mech/gss_verify_mic.c \
|
||||
mech/gss_wrap.c \
|
||||
mech/gss_wrap_size_limit.c \
|
||||
mech/gss_inquire_sec_context_by_oid.c \
|
||||
mech/mech_switch.h \
|
||||
mech/name.h \
|
||||
mech/utils.h \
|
||||
spnego/accept_sec_context.c \
|
||||
spnego/compat.c \
|
||||
spnego/context_stubs.c \
|
||||
spnego/cred_stubs.c \
|
||||
spnego/external.c \
|
||||
spnego/gssapi_spnego.h \
|
||||
spnego/init_sec_context.c \
|
||||
spnego/spnego_locl.h
|
||||
|
||||
man_MANS = gssapi.3 gss_acquire_cred.3
|
||||
|
||||
include_HEADERS = gssapi.h
|
||||
|
||||
gssapi_files = asn1_GSSAPIContextToken.x
|
||||
|
||||
spnego_files = \
|
||||
asn1_ContextFlags.x \
|
||||
asn1_MechType.x \
|
||||
asn1_MechTypeList.x \
|
||||
asn1_NegotiationToken.x \
|
||||
asn1_NegHints.x \
|
||||
asn1_NegTokenInit.x \
|
||||
asn1_NegTokenTarg.x
|
||||
asn1_NegTokenResp.x
|
||||
|
||||
BUILT_SOURCES = $(spnego_files:.x=.c)
|
||||
BUILT_SOURCES = $(spnego_files:.x=.c) $(gssapi_files:.x=.c)
|
||||
|
||||
lib_LTLIBRARIES = libgssapi.la
|
||||
libgssapi_la_LDFLAGS = -version-info 4:0:0
|
||||
libgssapi_la_LIBADD = \
|
||||
../krb5/libkrb5.la \
|
||||
$(LIB_des) \
|
||||
../asn1/libasn1.la \
|
||||
$(LIB_roken)
|
||||
|
||||
man_MANS = gssapi.3 gss_acquire_cred.3
|
||||
|
||||
include_HEADERS = gssapi.h
|
||||
|
||||
libgssapi_la_SOURCES = \
|
||||
$(BUILT_SOURCES) \
|
||||
8003.c \
|
||||
accept_sec_context.c \
|
||||
acquire_cred.c \
|
||||
add_cred.c \
|
||||
add_oid_set_member.c \
|
||||
arcfour.c \
|
||||
canonicalize_name.c \
|
||||
ccache_name.c \
|
||||
cfx.c \
|
||||
compare_name.c \
|
||||
compat.c \
|
||||
context_time.c \
|
||||
copy_ccache.c \
|
||||
create_emtpy_oid_set.c \
|
||||
decapsulate.c \
|
||||
delete_sec_context.c \
|
||||
display_name.c \
|
||||
display_status.c \
|
||||
duplicate_name.c \
|
||||
encapsulate.c \
|
||||
export_sec_context.c \
|
||||
export_name.c \
|
||||
external.c \
|
||||
get_mic.c \
|
||||
gssapi.h \
|
||||
gssapi_locl.h \
|
||||
import_name.c \
|
||||
import_sec_context.c \
|
||||
indicate_mechs.c \
|
||||
init.c \
|
||||
init_sec_context.c \
|
||||
inquire_context.c \
|
||||
inquire_cred.c \
|
||||
inquire_cred_by_mech.c \
|
||||
inquire_mechs_for_name.c \
|
||||
inquire_names_for_mech.c \
|
||||
oid_to_str.c \
|
||||
process_context_token.c \
|
||||
release_buffer.c \
|
||||
release_cred.c \
|
||||
release_name.c \
|
||||
release_oid_set.c \
|
||||
sequence.c \
|
||||
test_oid_set_member.c \
|
||||
ticket_flags.c \
|
||||
unwrap.c \
|
||||
v1.c \
|
||||
verify_mic.c \
|
||||
wrap.c \
|
||||
address_to_krb5addr.c
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES) $(spnego_files) spnego_asn1.h spnego_asn1_files
|
||||
CLEANFILES = $(BUILT_SOURCES) \
|
||||
$(spnego_files) spnego_asn1.h spnego_asn1_files \
|
||||
$(gssapi_files) gssapi_asn1.h gssapi_asn1_files
|
||||
|
||||
$(spnego_files) spnego_asn1.h: spnego_asn1_files
|
||||
$(gssapi_files) gssapi_asn1.h: gssapi_asn1_files
|
||||
|
||||
spnego_asn1_files: ../asn1/asn1_compile$(EXEEXT) $(srcdir)/spnego.asn1
|
||||
../asn1/asn1_compile$(EXEEXT) $(srcdir)/spnego.asn1 spnego_asn1
|
||||
spnego_asn1_files: ../asn1/asn1_compile$(EXEEXT) $(srcdir)/spnego/spnego.asn1
|
||||
../asn1/asn1_compile$(EXEEXT) $(srcdir)/spnego/spnego.asn1 spnego_asn1
|
||||
|
||||
$(libgssapi_la_OBJECTS): spnego_asn1.h
|
||||
gssapi_asn1_files: ../asn1/asn1_compile$(EXEEXT) $(srcdir)/mech/gssapi.asn1
|
||||
../asn1/asn1_compile$(EXEEXT) $(srcdir)/mech/gssapi.asn1 gssapi_asn1
|
||||
|
||||
TESTS = test_sequence test_oid
|
||||
$(srcdir)/krb5/gsskrb5-private.h:
|
||||
cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p krb5/gsskrb5-private.h $(krb5src) || rm -f krb5/gsskrb5-private.h
|
||||
|
||||
check_PROGRAMS = test_acquire_cred $(TESTS)
|
||||
|
||||
noinst_PROGRAMS = test_cred test_kcred
|
||||
LDADD = libgssapi.la $(LIB_roken)
|
||||
#TESTS = test_sequence test_oid
|
||||
#
|
||||
#check_PROGRAMS = test_acquire_cred $(TESTS)
|
||||
#
|
||||
#noinst_PROGRAMS = test_cred test_kcred
|
||||
#LDADD = libmech_krb5.la $(LIB_roken)
|
||||
|
||||
|
@@ -76,10 +76,6 @@ typedef struct gss_OID_set_desc_struct {
|
||||
gss_OID elements;
|
||||
} gss_OID_set_desc, *gss_OID_set;
|
||||
|
||||
struct krb5_keytab_data;
|
||||
|
||||
struct krb5_ccache_data;
|
||||
|
||||
typedef int gss_cred_usage_t;
|
||||
|
||||
struct gss_cred_id_t_desc_struct;
|
||||
@@ -98,6 +94,12 @@ typedef struct gss_channel_bindings_struct {
|
||||
gss_buffer_desc application_data;
|
||||
} *gss_channel_bindings_t;
|
||||
|
||||
/* GGF extension data types */
|
||||
typedef struct gss_buffer_set_desc_struct {
|
||||
size_t count;
|
||||
gss_buffer_desc *elements;
|
||||
} gss_buffer_set_desc, *gss_buffer_set_t;
|
||||
|
||||
/*
|
||||
* For now, define a QOP-type as an OM_uint32
|
||||
*/
|
||||
@@ -116,6 +118,8 @@ typedef OM_uint32 gss_qop_t;
|
||||
#define GSS_C_PROT_READY_FLAG 128
|
||||
#define GSS_C_TRANS_FLAG 256
|
||||
|
||||
#define GSS_C_DCE_STYLE 0x1000
|
||||
|
||||
/*
|
||||
* Credential usage options
|
||||
*/
|
||||
@@ -162,6 +166,7 @@ typedef OM_uint32 gss_qop_t;
|
||||
*/
|
||||
#define GSS_C_NO_NAME ((gss_name_t) 0)
|
||||
#define GSS_C_NO_BUFFER ((gss_buffer_t) 0)
|
||||
#define GSS_C_NO_BUFFER_SET ((gss_buffer_set_t) 0)
|
||||
#define GSS_C_NO_OID ((gss_OID) 0)
|
||||
#define GSS_C_NO_OID_SET ((gss_OID_set) 0)
|
||||
#define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
|
||||
@@ -319,6 +324,13 @@ extern gss_OID GSS_KRB5_MECHANISM;
|
||||
#define gss_mech_krb5 GSS_KRB5_MECHANISM
|
||||
#define gss_krb5_nt_general_name GSS_KRB5_NT_PRINCIPAL_NAME
|
||||
|
||||
/* Extensions */
|
||||
extern gss_OID GSS_C_PEER_HAS_UPDATED_SPNEGO;
|
||||
extern gss_OID GSS_KRB5_COPY_CCACHE_X;
|
||||
extern gss_OID GSS_KRB5_GET_TKT_FLAGS_X;
|
||||
extern gss_OID GSS_KRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT_X;
|
||||
extern gss_OID GSS_KRB5_COMPAT_DES3_MIC_X;
|
||||
|
||||
/* Major status codes */
|
||||
|
||||
#define GSS_S_COMPLETE 0
|
||||
@@ -442,6 +454,11 @@ extern gss_OID GSS_KRB5_MECHANISM;
|
||||
#define GSS_KRB5_S_KG_CTX_INCOMPLETE 17
|
||||
/* "Attempt to use incomplete security context" */
|
||||
|
||||
/*
|
||||
* This is used to make sure mechs that don't want to have external
|
||||
* references don't get any prototypes, and thus can get warnings.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Finally, function prototypes for the GSS-API routines.
|
||||
*/
|
||||
@@ -710,6 +727,63 @@ OM_uint32 gss_duplicate_name (
|
||||
gss_name_t * /*dest_name*/
|
||||
);
|
||||
|
||||
OM_uint32 gss_duplicate_oid (
|
||||
OM_uint32 * /* minor_status */,
|
||||
gss_OID /* src_oid */,
|
||||
gss_OID * /* dest_oid */
|
||||
);
|
||||
OM_uint32
|
||||
gss_release_oid
|
||||
(OM_uint32 * /*minor_status*/,
|
||||
gss_OID * /* oid */
|
||||
);
|
||||
|
||||
OM_uint32
|
||||
gss_oid_to_str(
|
||||
OM_uint32 * /*minor_status*/,
|
||||
gss_OID /* oid */,
|
||||
gss_buffer_t /* str */
|
||||
);
|
||||
|
||||
OM_uint32
|
||||
gss_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
|
||||
);
|
||||
|
||||
OM_uint32
|
||||
gss_set_sec_context_option (OM_uint32 *minor_status,
|
||||
gss_ctx_id_t *context_handle,
|
||||
const gss_OID desired_object,
|
||||
const gss_buffer_t value);
|
||||
|
||||
int
|
||||
gss_oid_equal(const gss_OID a, const gss_OID b);
|
||||
|
||||
OM_uint32
|
||||
gss_create_empty_buffer_set
|
||||
(OM_uint32 * minor_status,
|
||||
gss_buffer_set_t *buffer_set);
|
||||
|
||||
OM_uint32
|
||||
gss_add_buffer_set_member
|
||||
(OM_uint32 * minor_status,
|
||||
const gss_buffer_t member_buffer,
|
||||
gss_buffer_set_t *buffer_set);
|
||||
|
||||
OM_uint32
|
||||
gss_release_buffer_set
|
||||
(OM_uint32 * minor_status,
|
||||
gss_buffer_set_t *buffer_set);
|
||||
|
||||
OM_uint32
|
||||
gss_inquire_cred_by_oid(OM_uint32 *minor_status,
|
||||
const gss_cred_id_t cred_handle,
|
||||
const gss_OID desired_object,
|
||||
gss_buffer_set_t *data_set);
|
||||
|
||||
/*
|
||||
* The following routines are obsolete variants of gss_get_mic,
|
||||
* gss_verify_mic, gss_wrap and gss_unwrap. They should be
|
||||
@@ -760,6 +834,9 @@ OM_uint32 gss_unseal
|
||||
* kerberos mechanism specific functions
|
||||
*/
|
||||
|
||||
struct krb5_keytab_data;
|
||||
struct krb5_ccache_data;
|
||||
|
||||
OM_uint32
|
||||
gss_krb5_ccache_name(OM_uint32 * /*minor_status*/,
|
||||
const char * /*name */,
|
||||
@@ -798,10 +875,21 @@ OM_uint32
|
||||
gss_krb5_compat_des3_mic(OM_uint32 *, gss_ctx_id_t, int);
|
||||
|
||||
OM_uint32
|
||||
gss_oid_to_str
|
||||
(OM_uint32 * /*minor_status*/,
|
||||
gss_OID /* oid */,
|
||||
gss_buffer_t /* str */);
|
||||
gss_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);
|
||||
|
||||
OM_uint32
|
||||
gss_encapsulate_token(gss_buffer_t /* input_token */,
|
||||
gss_OID /* oid */,
|
||||
gss_buffer_t /* output_token */);
|
||||
|
||||
OM_uint32
|
||||
gss_decapsulate_token(gss_buffer_t /* input_token */,
|
||||
gss_OID /* oid */,
|
||||
gss_buffer_t /* output_token */);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
332
lib/gssapi/gssapi_mech.h
Normal file
332
lib/gssapi/gssapi_mech.h
Normal file
@@ -0,0 +1,332 @@
|
||||
/*-
|
||||
* Copyright (c) 2005 Doug Rabson
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD: src/lib/libgssapi/mech_switch.h,v 1.1 2005/12/29 14:40:20 dfr Exp $
|
||||
*/
|
||||
|
||||
#ifndef GSSAPI_MECH_H
|
||||
#define GSSAPI_MECH_H 1
|
||||
|
||||
#include <gssapi.h>
|
||||
|
||||
typedef OM_uint32 _gss_acquire_cred_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* desired_name */
|
||||
OM_uint32, /* time_req */
|
||||
const gss_OID_set, /* desired_mechs */
|
||||
gss_cred_usage_t, /* cred_usage */
|
||||
gss_cred_id_t *, /* output_cred_handle */
|
||||
gss_OID_set *, /* actual_mechs */
|
||||
OM_uint32 * /* time_rec */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_release_cred_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
gss_cred_id_t * /* cred_handle */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_init_sec_context_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_cred_id_t, /* initiator_cred_handle */
|
||||
gss_ctx_id_t *, /* context_handle */
|
||||
const gss_name_t, /* target_name */
|
||||
const gss_OID, /* mech_type */
|
||||
OM_uint32, /* req_flags */
|
||||
OM_uint32, /* time_req */
|
||||
const gss_channel_bindings_t,
|
||||
/* input_chan_bindings */
|
||||
const gss_buffer_t, /* input_token */
|
||||
gss_OID *, /* actual_mech_type */
|
||||
gss_buffer_t, /* output_token */
|
||||
OM_uint32 *, /* ret_flags */
|
||||
OM_uint32 * /* time_rec */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_accept_sec_context_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t *, /* context_handle */
|
||||
const gss_cred_id_t, /* acceptor_cred_handle */
|
||||
const gss_buffer_t, /* input_token_buffer */
|
||||
const gss_channel_bindings_t,
|
||||
/* input_chan_bindings */
|
||||
gss_name_t *, /* src_name */
|
||||
gss_OID *, /* mech_type */
|
||||
gss_buffer_t, /* output_token */
|
||||
OM_uint32 *, /* ret_flags */
|
||||
OM_uint32 *, /* time_rec */
|
||||
gss_cred_id_t * /* delegated_cred_handle */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_process_context_token_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
const gss_buffer_t /* token_buffer */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_delete_sec_context_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t *, /* context_handle */
|
||||
gss_buffer_t /* output_token */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_context_time_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
OM_uint32 * /* time_rec */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_get_mic_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
gss_qop_t, /* qop_req */
|
||||
const gss_buffer_t, /* message_buffer */
|
||||
gss_buffer_t /* message_token */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_verify_mic_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
const gss_buffer_t, /* message_buffer */
|
||||
const gss_buffer_t, /* token_buffer */
|
||||
gss_qop_t * /* qop_state */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_wrap_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
int, /* conf_req_flag */
|
||||
gss_qop_t, /* qop_req */
|
||||
const gss_buffer_t, /* input_message_buffer */
|
||||
int *, /* conf_state */
|
||||
gss_buffer_t /* output_message_buffer */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_unwrap_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
const gss_buffer_t, /* input_message_buffer */
|
||||
gss_buffer_t, /* output_message_buffer */
|
||||
int *, /* conf_state */
|
||||
gss_qop_t * /* qop_state */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_display_status_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
OM_uint32, /* status_value */
|
||||
int, /* status_type */
|
||||
const gss_OID, /* mech_type */
|
||||
OM_uint32 *, /* message_context */
|
||||
gss_buffer_t /* status_string */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_indicate_mechs_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
gss_OID_set * /* mech_set */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_compare_name_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* name1 */
|
||||
const gss_name_t, /* name2 */
|
||||
int * /* name_equal */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_display_name_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
gss_buffer_t, /* output_name_buffer */
|
||||
gss_OID * /* output_name_type */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_import_name_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_buffer_t, /* input_name_buffer */
|
||||
const gss_OID, /* input_name_type */
|
||||
gss_name_t * /* output_name */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_export_name_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
gss_buffer_t /* exported_name */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_release_name_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
gss_name_t * /* input_name */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_inquire_cred_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_cred_id_t, /* cred_handle */
|
||||
gss_name_t *, /* name */
|
||||
OM_uint32 *, /* lifetime */
|
||||
gss_cred_usage_t *, /* cred_usage */
|
||||
gss_OID_set * /* mechanisms */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_inquire_context_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
gss_name_t *, /* src_name */
|
||||
gss_name_t *, /* targ_name */
|
||||
OM_uint32 *, /* lifetime_rec */
|
||||
gss_OID *, /* mech_type */
|
||||
OM_uint32 *, /* ctx_flags */
|
||||
int *, /* locally_initiated */
|
||||
int * /* open */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_wrap_size_limit_t
|
||||
(OM_uint32 *, /* minor_status */
|
||||
const gss_ctx_id_t, /* context_handle */
|
||||
int, /* conf_req_flag */
|
||||
gss_qop_t, /* qop_req */
|
||||
OM_uint32, /* req_output_size */
|
||||
OM_uint32 * /* max_input_size */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_add_cred_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_cred_id_t, /* input_cred_handle */
|
||||
const gss_name_t, /* desired_name */
|
||||
const gss_OID, /* desired_mech */
|
||||
gss_cred_usage_t, /* cred_usage */
|
||||
OM_uint32, /* initiator_time_req */
|
||||
OM_uint32, /* acceptor_time_req */
|
||||
gss_cred_id_t *, /* output_cred_handle */
|
||||
gss_OID_set *, /* actual_mechs */
|
||||
OM_uint32 *, /* initiator_time_rec */
|
||||
OM_uint32 * /* acceptor_time_rec */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_inquire_cred_by_mech_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_cred_id_t, /* cred_handle */
|
||||
const gss_OID, /* mech_type */
|
||||
gss_name_t *, /* name */
|
||||
OM_uint32 *, /* initiator_lifetime */
|
||||
OM_uint32 *, /* acceptor_lifetime */
|
||||
gss_cred_usage_t * /* cred_usage */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_export_sec_context_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
gss_ctx_id_t *, /* context_handle */
|
||||
gss_buffer_t /* interprocess_token */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_import_sec_context_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_buffer_t, /* interprocess_token */
|
||||
gss_ctx_id_t * /* context_handle */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_inquire_names_for_mech_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_OID, /* mechanism */
|
||||
gss_OID_set * /* name_types */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_inquire_mechs_for_name_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
gss_OID_set * /* mech_types */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_canonicalize_name_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* input_name */
|
||||
const gss_OID, /* mech_type */
|
||||
gss_name_t * /* output_name */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_duplicate_name_t (
|
||||
OM_uint32 *, /* minor_status */
|
||||
const gss_name_t, /* src_name */
|
||||
gss_name_t * /* dest_name */
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_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
|
||||
);
|
||||
|
||||
typedef OM_uint32 _gss_inquire_cred_by_oid (
|
||||
OM_uint32 *minor_status,
|
||||
const gss_cred_id_t cred,
|
||||
const gss_OID desired_object,
|
||||
gss_buffer_set_t *data_set
|
||||
);
|
||||
|
||||
|
||||
#define GMI_VERSION 1
|
||||
|
||||
typedef struct gssapi_mech_interface_desc {
|
||||
unsigned gm_version;
|
||||
const char *gm_name;
|
||||
gss_OID_desc gm_mech_oid;
|
||||
_gss_acquire_cred_t *gm_acquire_cred;
|
||||
_gss_release_cred_t *gm_release_cred;
|
||||
_gss_init_sec_context_t *gm_init_sec_context;
|
||||
_gss_accept_sec_context_t *gm_accept_sec_context;
|
||||
_gss_process_context_token_t *gm_process_context_token;
|
||||
_gss_delete_sec_context_t *gm_delete_sec_context;
|
||||
_gss_context_time_t *gm_context_time;
|
||||
_gss_get_mic_t *gm_get_mic;
|
||||
_gss_verify_mic_t *gm_verify_mic;
|
||||
_gss_wrap_t *gm_wrap;
|
||||
_gss_unwrap_t *gm_unwrap;
|
||||
_gss_display_status_t *gm_display_status;
|
||||
_gss_indicate_mechs_t *gm_indicate_mechs;
|
||||
_gss_compare_name_t *gm_compare_name;
|
||||
_gss_display_name_t *gm_display_name;
|
||||
_gss_import_name_t *gm_import_name;
|
||||
_gss_export_name_t *gm_export_name;
|
||||
_gss_release_name_t *gm_release_name;
|
||||
_gss_inquire_cred_t *gm_inquire_cred;
|
||||
_gss_inquire_context_t *gm_inquire_context;
|
||||
_gss_wrap_size_limit_t *gm_wrap_size_limit;
|
||||
_gss_add_cred_t *gm_add_cred;
|
||||
_gss_inquire_cred_by_mech_t *gm_inquire_cred_by_mech;
|
||||
_gss_export_sec_context_t *gm_export_sec_context;
|
||||
_gss_import_sec_context_t *gm_import_sec_context;
|
||||
_gss_inquire_names_for_mech_t *gm_inquire_names_for_mech;
|
||||
_gss_inquire_mechs_for_name_t *gm_inquire_mechs_for_name;
|
||||
_gss_canonicalize_name_t *gm_canonicalize_name;
|
||||
_gss_duplicate_name_t *gm_duplicate_name;
|
||||
_gss_inquire_sec_context_by_oid *gm_inquire_sec_context_by_oid;
|
||||
_gss_inquire_cred_by_oid *gm_inquire_cred_by_oid;
|
||||
} gssapi_mech_interface_desc, *gssapi_mech_interface;
|
||||
|
||||
gssapi_mech_interface
|
||||
__gss_get_mechanism(gss_OID /* oid */);
|
||||
|
||||
gssapi_mech_interface __gss_spnego_initialize(void);
|
||||
gssapi_mech_interface __gss_krb5_initialize(void);
|
||||
|
||||
#endif /* GSSAPI_MECH_H */
|
Reference in New Issue
Block a user