#ifndef _GSS_MECHGLUEP_H
#define _GSS_MECHGLUEP_H
#include "mechglue.h"
typedef struct gss_union_ctx_id_t {
gss_OID mech_type;
gss_ctx_id_t internal_ctx_id;
} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
typedef struct gss_union_name_t {
gss_OID name_type;
gss_buffer_t external_name;
gss_OID mech_type;
gss_name_t mech_name;
} gss_union_name_desc, *gss_union_name_t;
typedef struct gss_mech_spec_name_t {
gss_OID name_type;
gss_OID mech;
struct gss_mech_spec_name_t *next, *prev;
} gss_mech_spec_name_desc, *gss_mech_spec_name;
typedef struct gss_union_cred_auxinfo {
gss_buffer_desc name;
gss_OID name_type;
time_t creation_time;
OM_uint32 time_rec;
int cred_usage;
} gss_union_cred_auxinfo;
typedef struct gss_union_cred_t {
int count;
gss_OID mechs_array;
gss_cred_id_t * cred_array;
gss_union_cred_auxinfo auxinfo;
} gss_union_cred_desc, *gss_union_cred_t;
typedef struct gss_config {
gss_OID_desc mech_type;
void * context;
OM_uint32 (*gss_acquire_cred)
(
void*,
OM_uint32*,
gss_name_t,
OM_uint32,
gss_OID_set,
int,
gss_cred_id_t*,
gss_OID_set*,
OM_uint32*
);
OM_uint32 (*gss_release_cred)
(
void*,
OM_uint32*,
gss_cred_id_t*
);
OM_uint32 (*gss_init_sec_context)
(
void*,
OM_uint32*,
gss_cred_id_t,
gss_ctx_id_t*,
gss_name_t,
gss_OID,
OM_uint32,
OM_uint32,
gss_channel_bindings_t,
gss_buffer_t,
gss_OID*,
gss_buffer_t,
OM_uint32*,
OM_uint32*
);
OM_uint32 (*gss_accept_sec_context)
(
void*,
OM_uint32*,
gss_ctx_id_t*,
gss_cred_id_t,
gss_buffer_t,
gss_channel_bindings_t,
gss_name_t*,
gss_OID*,
gss_buffer_t,
OM_uint32*,
OM_uint32*,
gss_cred_id_t*
);
OM_uint32 (*gss_process_context_token)
(
void*,
OM_uint32*,
gss_ctx_id_t,
gss_buffer_t
);
OM_uint32 (*gss_delete_sec_context)
(
void*,
OM_uint32*,
gss_ctx_id_t*,
gss_buffer_t
);
OM_uint32 (*gss_context_time)
(
void*,
OM_uint32*,
gss_ctx_id_t,
OM_uint32*
);
OM_uint32 (*gss_sign)
(
void*,
OM_uint32*,
gss_ctx_id_t,
int,
gss_buffer_t,
gss_buffer_t
);
OM_uint32 (*gss_verify)
(
void*,
OM_uint32*,
gss_ctx_id_t,
gss_buffer_t,
gss_buffer_t,
int*
);
OM_uint32 (*gss_seal)
(
void*,
OM_uint32*,
gss_ctx_id_t,
int,
int,
gss_buffer_t,
int*,
gss_buffer_t
);
OM_uint32 (*gss_unseal)
(
void*,
OM_uint32*,
gss_ctx_id_t,
gss_buffer_t,
gss_buffer_t,
int*,
int*
);
OM_uint32 (*gss_display_status)
(
void*,
OM_uint32*,
OM_uint32,
int,
gss_OID,
OM_uint32*,
gss_buffer_t
);
OM_uint32 (*gss_indicate_mechs)
(
void*,
OM_uint32*,
gss_OID_set*
);
OM_uint32 (*gss_compare_name)
(
void*,
OM_uint32*,
gss_name_t,
gss_name_t,
int*
);
OM_uint32 (*gss_display_name)
(
void*,
OM_uint32*,
gss_name_t,
gss_buffer_t,
gss_OID*
);
OM_uint32 (*gss_import_name)
(
void*,
OM_uint32*,
gss_buffer_t,
gss_OID,
gss_name_t*
);
OM_uint32 (*gss_release_name)
(
void*,
OM_uint32*,
gss_name_t*
);
OM_uint32 (*gss_inquire_cred)
(
void*,
OM_uint32 *,
gss_cred_id_t,
gss_name_t *,
OM_uint32 *,
int *,
gss_OID_set *
);
OM_uint32 (*gss_add_cred)
(
void*,
OM_uint32 *,
gss_cred_id_t,
gss_name_t,
gss_OID,
gss_cred_usage_t,
OM_uint32,
OM_uint32,
gss_cred_id_t *,
gss_OID_set *,
OM_uint32 *,
OM_uint32 *
);
OM_uint32 (*gss_export_sec_context)
(
void*,
OM_uint32 *,
gss_ctx_id_t *,
gss_buffer_t
);
OM_uint32 (*gss_import_sec_context)
(
void *,
OM_uint32 *,
gss_buffer_t,
gss_ctx_id_t *
);
OM_uint32 (*gss_inquire_cred_by_mech)
(
void *,
OM_uint32 *,
gss_cred_id_t,
gss_OID,
gss_name_t *,
OM_uint32 *,
OM_uint32 *,
gss_cred_usage_t *
);
OM_uint32 (*gss_inquire_names_for_mech)
(
void *,
OM_uint32 *,
gss_OID,
gss_OID_set *
);
OM_uint32 (*gss_inquire_context)
(
void *,
OM_uint32 *,
gss_ctx_id_t,
gss_name_t *,
gss_name_t *,
OM_uint32 *,
gss_OID *,
OM_uint32 *,
int *,
int *
);
OM_uint32 (*gss_internal_release_oid)
(
void *,
OM_uint32 *,
gss_OID *
);
OM_uint32 (*gss_wrap_size_limit)
(
void *,
OM_uint32 *,
gss_ctx_id_t,
int,
gss_qop_t,
OM_uint32,
OM_uint32 *
);
int (*pname_to_uid)
(
void *,
char *,
gss_OID,
gss_OID,
uid_t *
);
} *gss_mechanism;
gss_mechanism __gss_get_mechanism (gss_OID);
OM_uint32 __gss_get_mech_type (gss_OID, gss_buffer_t);
OM_uint32 __gss_import_internal_name (OM_uint32 *, gss_OID, gss_union_name_t,
gss_name_t *);
OM_uint32 __gss_display_internal_name (OM_uint32 *, gss_OID, gss_name_t,
gss_buffer_t, gss_OID *);
OM_uint32 __gss_release_internal_name (OM_uint32 *, gss_OID, gss_name_t *);
OM_uint32 __gss_convert_name_to_union_name
(OM_uint32 *,
gss_mechanism,
gss_name_t,
gss_name_t *
);
gss_cred_id_t __gss_get_mechanism_cred
(gss_union_cred_t,
gss_OID
);
OM_uint32 generic_gss_release_oid
(OM_uint32 *,
gss_OID *
);
OM_uint32 generic_gss_copy_oid
(OM_uint32 *,
gss_OID,
gss_OID *
);
OM_uint32 generic_gss_create_empty_oid_set
(OM_uint32 *,
gss_OID_set *
);
OM_uint32 generic_gss_add_oid_set_member
(OM_uint32 *,
gss_OID,
gss_OID_set *
);
OM_uint32 generic_gss_test_oid_set_member
(OM_uint32 *,
gss_OID,
gss_OID_set,
int *
);
OM_uint32 generic_gss_oid_to_str
(OM_uint32 *,
gss_OID,
gss_buffer_t
);
OM_uint32 generic_gss_str_to_oid
(OM_uint32 *,
gss_buffer_t,
gss_OID *
);
gss_OID gss_find_mechanism_from_name_type (gss_OID);
OM_uint32 gss_add_mech_name_type
(OM_uint32 *,
gss_OID,
gss_OID
);
#endif