1c19800e8SDoug Rabson /*- 2c19800e8SDoug Rabson * Copyright (c) 2005 Doug Rabson 3c19800e8SDoug Rabson * All rights reserved. 4c19800e8SDoug Rabson * 5c19800e8SDoug Rabson * Redistribution and use in source and binary forms, with or without 6c19800e8SDoug Rabson * modification, are permitted provided that the following conditions 7c19800e8SDoug Rabson * are met: 8c19800e8SDoug Rabson * 1. Redistributions of source code must retain the above copyright 9c19800e8SDoug Rabson * notice, this list of conditions and the following disclaimer. 10c19800e8SDoug Rabson * 2. Redistributions in binary form must reproduce the above copyright 11c19800e8SDoug Rabson * notice, this list of conditions and the following disclaimer in the 12c19800e8SDoug Rabson * documentation and/or other materials provided with the distribution. 13c19800e8SDoug Rabson * 14c19800e8SDoug Rabson * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15c19800e8SDoug Rabson * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16c19800e8SDoug Rabson * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17c19800e8SDoug Rabson * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18c19800e8SDoug Rabson * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19c19800e8SDoug Rabson * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20c19800e8SDoug Rabson * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21c19800e8SDoug Rabson * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22c19800e8SDoug Rabson * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23c19800e8SDoug Rabson * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24c19800e8SDoug Rabson * SUCH DAMAGE. 25c19800e8SDoug Rabson * 26c19800e8SDoug Rabson * $FreeBSD$ 27c19800e8SDoug Rabson */ 28c19800e8SDoug Rabson 29c19800e8SDoug Rabson #ifndef GSSAPI_MECH_H 30c19800e8SDoug Rabson #define GSSAPI_MECH_H 1 31c19800e8SDoug Rabson 32c19800e8SDoug Rabson #include <gssapi.h> 33c19800e8SDoug Rabson 34c19800e8SDoug Rabson typedef OM_uint32 _gss_acquire_cred_t 35c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 36c19800e8SDoug Rabson const gss_name_t, /* desired_name */ 37c19800e8SDoug Rabson OM_uint32, /* time_req */ 38c19800e8SDoug Rabson const gss_OID_set, /* desired_mechs */ 39c19800e8SDoug Rabson gss_cred_usage_t, /* cred_usage */ 40c19800e8SDoug Rabson gss_cred_id_t *, /* output_cred_handle */ 41c19800e8SDoug Rabson gss_OID_set *, /* actual_mechs */ 42c19800e8SDoug Rabson OM_uint32 * /* time_rec */ 43c19800e8SDoug Rabson ); 44c19800e8SDoug Rabson 45c19800e8SDoug Rabson typedef OM_uint32 _gss_release_cred_t 46c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 47c19800e8SDoug Rabson gss_cred_id_t * /* cred_handle */ 48c19800e8SDoug Rabson ); 49c19800e8SDoug Rabson 50c19800e8SDoug Rabson typedef OM_uint32 _gss_init_sec_context_t 51c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 52c19800e8SDoug Rabson const gss_cred_id_t, /* initiator_cred_handle */ 53c19800e8SDoug Rabson gss_ctx_id_t *, /* context_handle */ 54c19800e8SDoug Rabson const gss_name_t, /* target_name */ 55c19800e8SDoug Rabson const gss_OID, /* mech_type */ 56c19800e8SDoug Rabson OM_uint32, /* req_flags */ 57c19800e8SDoug Rabson OM_uint32, /* time_req */ 58c19800e8SDoug Rabson const gss_channel_bindings_t, 59c19800e8SDoug Rabson /* input_chan_bindings */ 60c19800e8SDoug Rabson const gss_buffer_t, /* input_token */ 61c19800e8SDoug Rabson gss_OID *, /* actual_mech_type */ 62c19800e8SDoug Rabson gss_buffer_t, /* output_token */ 63c19800e8SDoug Rabson OM_uint32 *, /* ret_flags */ 64c19800e8SDoug Rabson OM_uint32 * /* time_rec */ 65c19800e8SDoug Rabson ); 66c19800e8SDoug Rabson 67c19800e8SDoug Rabson typedef OM_uint32 _gss_accept_sec_context_t 68c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 69c19800e8SDoug Rabson gss_ctx_id_t *, /* context_handle */ 70c19800e8SDoug Rabson const gss_cred_id_t, /* acceptor_cred_handle */ 71c19800e8SDoug Rabson const gss_buffer_t, /* input_token_buffer */ 72c19800e8SDoug Rabson const gss_channel_bindings_t, 73c19800e8SDoug Rabson /* input_chan_bindings */ 74c19800e8SDoug Rabson gss_name_t *, /* src_name */ 75c19800e8SDoug Rabson gss_OID *, /* mech_type */ 76c19800e8SDoug Rabson gss_buffer_t, /* output_token */ 77c19800e8SDoug Rabson OM_uint32 *, /* ret_flags */ 78c19800e8SDoug Rabson OM_uint32 *, /* time_rec */ 79c19800e8SDoug Rabson gss_cred_id_t * /* delegated_cred_handle */ 80c19800e8SDoug Rabson ); 81c19800e8SDoug Rabson 82c19800e8SDoug Rabson typedef OM_uint32 _gss_process_context_token_t 83c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 84c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 85c19800e8SDoug Rabson const gss_buffer_t /* token_buffer */ 86c19800e8SDoug Rabson ); 87c19800e8SDoug Rabson 88c19800e8SDoug Rabson typedef OM_uint32 _gss_delete_sec_context_t 89c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 90c19800e8SDoug Rabson gss_ctx_id_t *, /* context_handle */ 91c19800e8SDoug Rabson gss_buffer_t /* output_token */ 92c19800e8SDoug Rabson ); 93c19800e8SDoug Rabson 94c19800e8SDoug Rabson typedef OM_uint32 _gss_context_time_t 95c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 96c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 97c19800e8SDoug Rabson OM_uint32 * /* time_rec */ 98c19800e8SDoug Rabson ); 99c19800e8SDoug Rabson 100c19800e8SDoug Rabson typedef OM_uint32 _gss_get_mic_t 101c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 102c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 103c19800e8SDoug Rabson gss_qop_t, /* qop_req */ 104c19800e8SDoug Rabson const gss_buffer_t, /* message_buffer */ 105c19800e8SDoug Rabson gss_buffer_t /* message_token */ 106c19800e8SDoug Rabson ); 107c19800e8SDoug Rabson 108c19800e8SDoug Rabson typedef OM_uint32 _gss_verify_mic_t 109c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 110c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 111c19800e8SDoug Rabson const gss_buffer_t, /* message_buffer */ 112c19800e8SDoug Rabson const gss_buffer_t, /* token_buffer */ 113c19800e8SDoug Rabson gss_qop_t * /* qop_state */ 114c19800e8SDoug Rabson ); 115c19800e8SDoug Rabson 116c19800e8SDoug Rabson typedef OM_uint32 _gss_wrap_t 117c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 118c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 119c19800e8SDoug Rabson int, /* conf_req_flag */ 120c19800e8SDoug Rabson gss_qop_t, /* qop_req */ 121c19800e8SDoug Rabson const gss_buffer_t, /* input_message_buffer */ 122c19800e8SDoug Rabson int *, /* conf_state */ 123c19800e8SDoug Rabson gss_buffer_t /* output_message_buffer */ 124c19800e8SDoug Rabson ); 125c19800e8SDoug Rabson 126c19800e8SDoug Rabson typedef OM_uint32 _gss_unwrap_t 127c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 128c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 129c19800e8SDoug Rabson const gss_buffer_t, /* input_message_buffer */ 130c19800e8SDoug Rabson gss_buffer_t, /* output_message_buffer */ 131c19800e8SDoug Rabson int *, /* conf_state */ 132c19800e8SDoug Rabson gss_qop_t * /* qop_state */ 133c19800e8SDoug Rabson ); 134c19800e8SDoug Rabson 135c19800e8SDoug Rabson typedef OM_uint32 _gss_display_status_t 136c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 137c19800e8SDoug Rabson OM_uint32, /* status_value */ 138c19800e8SDoug Rabson int, /* status_type */ 139c19800e8SDoug Rabson const gss_OID, /* mech_type */ 140c19800e8SDoug Rabson OM_uint32 *, /* message_context */ 141c19800e8SDoug Rabson gss_buffer_t /* status_string */ 142c19800e8SDoug Rabson ); 143c19800e8SDoug Rabson 144c19800e8SDoug Rabson typedef OM_uint32 _gss_indicate_mechs_t 145c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 146c19800e8SDoug Rabson gss_OID_set * /* mech_set */ 147c19800e8SDoug Rabson ); 148c19800e8SDoug Rabson 149c19800e8SDoug Rabson typedef OM_uint32 _gss_compare_name_t 150c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 151c19800e8SDoug Rabson const gss_name_t, /* name1 */ 152c19800e8SDoug Rabson const gss_name_t, /* name2 */ 153c19800e8SDoug Rabson int * /* name_equal */ 154c19800e8SDoug Rabson ); 155c19800e8SDoug Rabson 156c19800e8SDoug Rabson typedef OM_uint32 _gss_display_name_t 157c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 158c19800e8SDoug Rabson const gss_name_t, /* input_name */ 159c19800e8SDoug Rabson gss_buffer_t, /* output_name_buffer */ 160c19800e8SDoug Rabson gss_OID * /* output_name_type */ 161c19800e8SDoug Rabson ); 162c19800e8SDoug Rabson 163c19800e8SDoug Rabson typedef OM_uint32 _gss_import_name_t 164c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 165c19800e8SDoug Rabson const gss_buffer_t, /* input_name_buffer */ 166c19800e8SDoug Rabson const gss_OID, /* input_name_type */ 167c19800e8SDoug Rabson gss_name_t * /* output_name */ 168c19800e8SDoug Rabson ); 169c19800e8SDoug Rabson 170c19800e8SDoug Rabson typedef OM_uint32 _gss_export_name_t 171c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 172c19800e8SDoug Rabson const gss_name_t, /* input_name */ 173c19800e8SDoug Rabson gss_buffer_t /* exported_name */ 174c19800e8SDoug Rabson ); 175c19800e8SDoug Rabson 176c19800e8SDoug Rabson typedef OM_uint32 _gss_release_name_t 177c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 178c19800e8SDoug Rabson gss_name_t * /* input_name */ 179c19800e8SDoug Rabson ); 180c19800e8SDoug Rabson 181c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_cred_t 182c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 183c19800e8SDoug Rabson const gss_cred_id_t, /* cred_handle */ 184c19800e8SDoug Rabson gss_name_t *, /* name */ 185c19800e8SDoug Rabson OM_uint32 *, /* lifetime */ 186c19800e8SDoug Rabson gss_cred_usage_t *, /* cred_usage */ 187c19800e8SDoug Rabson gss_OID_set * /* mechanisms */ 188c19800e8SDoug Rabson ); 189c19800e8SDoug Rabson 190c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_context_t 191c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 192c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 193c19800e8SDoug Rabson gss_name_t *, /* src_name */ 194c19800e8SDoug Rabson gss_name_t *, /* targ_name */ 195c19800e8SDoug Rabson OM_uint32 *, /* lifetime_rec */ 196c19800e8SDoug Rabson gss_OID *, /* mech_type */ 197c19800e8SDoug Rabson OM_uint32 *, /* ctx_flags */ 198c19800e8SDoug Rabson int *, /* locally_initiated */ 199c19800e8SDoug Rabson int * /* open */ 200c19800e8SDoug Rabson ); 201c19800e8SDoug Rabson 202c19800e8SDoug Rabson typedef OM_uint32 _gss_wrap_size_limit_t 203c19800e8SDoug Rabson (OM_uint32 *, /* minor_status */ 204c19800e8SDoug Rabson const gss_ctx_id_t, /* context_handle */ 205c19800e8SDoug Rabson int, /* conf_req_flag */ 206c19800e8SDoug Rabson gss_qop_t, /* qop_req */ 207c19800e8SDoug Rabson OM_uint32, /* req_output_size */ 208c19800e8SDoug Rabson OM_uint32 * /* max_input_size */ 209c19800e8SDoug Rabson ); 210c19800e8SDoug Rabson 211c19800e8SDoug Rabson typedef OM_uint32 _gss_add_cred_t ( 212c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 213c19800e8SDoug Rabson const gss_cred_id_t, /* input_cred_handle */ 214c19800e8SDoug Rabson const gss_name_t, /* desired_name */ 215c19800e8SDoug Rabson const gss_OID, /* desired_mech */ 216c19800e8SDoug Rabson gss_cred_usage_t, /* cred_usage */ 217c19800e8SDoug Rabson OM_uint32, /* initiator_time_req */ 218c19800e8SDoug Rabson OM_uint32, /* acceptor_time_req */ 219c19800e8SDoug Rabson gss_cred_id_t *, /* output_cred_handle */ 220c19800e8SDoug Rabson gss_OID_set *, /* actual_mechs */ 221c19800e8SDoug Rabson OM_uint32 *, /* initiator_time_rec */ 222c19800e8SDoug Rabson OM_uint32 * /* acceptor_time_rec */ 223c19800e8SDoug Rabson ); 224c19800e8SDoug Rabson 225c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_cred_by_mech_t ( 226c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 227c19800e8SDoug Rabson const gss_cred_id_t, /* cred_handle */ 228c19800e8SDoug Rabson const gss_OID, /* mech_type */ 229c19800e8SDoug Rabson gss_name_t *, /* name */ 230c19800e8SDoug Rabson OM_uint32 *, /* initiator_lifetime */ 231c19800e8SDoug Rabson OM_uint32 *, /* acceptor_lifetime */ 232c19800e8SDoug Rabson gss_cred_usage_t * /* cred_usage */ 233c19800e8SDoug Rabson ); 234c19800e8SDoug Rabson 235c19800e8SDoug Rabson typedef OM_uint32 _gss_export_sec_context_t ( 236c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 237c19800e8SDoug Rabson gss_ctx_id_t *, /* context_handle */ 238c19800e8SDoug Rabson gss_buffer_t /* interprocess_token */ 239c19800e8SDoug Rabson ); 240c19800e8SDoug Rabson 241c19800e8SDoug Rabson typedef OM_uint32 _gss_import_sec_context_t ( 242c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 243c19800e8SDoug Rabson const gss_buffer_t, /* interprocess_token */ 244c19800e8SDoug Rabson gss_ctx_id_t * /* context_handle */ 245c19800e8SDoug Rabson ); 246c19800e8SDoug Rabson 247c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_names_for_mech_t ( 248c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 249c19800e8SDoug Rabson const gss_OID, /* mechanism */ 250c19800e8SDoug Rabson gss_OID_set * /* name_types */ 251c19800e8SDoug Rabson ); 252c19800e8SDoug Rabson 253c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_mechs_for_name_t ( 254c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 255c19800e8SDoug Rabson const gss_name_t, /* input_name */ 256c19800e8SDoug Rabson gss_OID_set * /* mech_types */ 257c19800e8SDoug Rabson ); 258c19800e8SDoug Rabson 259c19800e8SDoug Rabson typedef OM_uint32 _gss_canonicalize_name_t ( 260c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 261c19800e8SDoug Rabson const gss_name_t, /* input_name */ 262c19800e8SDoug Rabson const gss_OID, /* mech_type */ 263c19800e8SDoug Rabson gss_name_t * /* output_name */ 264c19800e8SDoug Rabson ); 265c19800e8SDoug Rabson 266c19800e8SDoug Rabson typedef OM_uint32 _gss_duplicate_name_t ( 267c19800e8SDoug Rabson OM_uint32 *, /* minor_status */ 268c19800e8SDoug Rabson const gss_name_t, /* src_name */ 269c19800e8SDoug Rabson gss_name_t * /* dest_name */ 270c19800e8SDoug Rabson ); 271c19800e8SDoug Rabson 272c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_sec_context_by_oid ( 273c19800e8SDoug Rabson OM_uint32 *minor_status, 274c19800e8SDoug Rabson const gss_ctx_id_t context_handle, 275c19800e8SDoug Rabson const gss_OID desired_object, 276c19800e8SDoug Rabson gss_buffer_set_t *data_set 277c19800e8SDoug Rabson ); 278c19800e8SDoug Rabson 279c19800e8SDoug Rabson typedef OM_uint32 _gss_inquire_cred_by_oid ( 280c19800e8SDoug Rabson OM_uint32 *minor_status, 281c19800e8SDoug Rabson const gss_cred_id_t cred, 282c19800e8SDoug Rabson const gss_OID desired_object, 283c19800e8SDoug Rabson gss_buffer_set_t *data_set 284c19800e8SDoug Rabson ); 285c19800e8SDoug Rabson 286c19800e8SDoug Rabson typedef OM_uint32 _gss_set_sec_context_option ( 287c19800e8SDoug Rabson OM_uint32 *minor_status, 288c19800e8SDoug Rabson gss_ctx_id_t *cred_handle, 289c19800e8SDoug Rabson const gss_OID desired_object, 290c19800e8SDoug Rabson const gss_buffer_t value 291c19800e8SDoug Rabson ); 292c19800e8SDoug Rabson 293c19800e8SDoug Rabson typedef OM_uint32 _gss_set_cred_option ( 294c19800e8SDoug Rabson OM_uint32 *minor_status, 295c19800e8SDoug Rabson gss_cred_id_t *cred_handle, 296c19800e8SDoug Rabson const gss_OID desired_object, 297c19800e8SDoug Rabson const gss_buffer_t value 298c19800e8SDoug Rabson ); 299c19800e8SDoug Rabson 300c19800e8SDoug Rabson 301c19800e8SDoug Rabson typedef OM_uint32 _gss_pseudo_random( 302c19800e8SDoug Rabson OM_uint32 *minor_status, 303c19800e8SDoug Rabson gss_ctx_id_t context, 304c19800e8SDoug Rabson int prf_key, 305c19800e8SDoug Rabson const gss_buffer_t prf_in, 306c19800e8SDoug Rabson ssize_t desired_output_len, 307c19800e8SDoug Rabson gss_buffer_t prf_out 308c19800e8SDoug Rabson ); 309c19800e8SDoug Rabson 310c19800e8SDoug Rabson #define GMI_VERSION 1 311c19800e8SDoug Rabson 312c19800e8SDoug Rabson typedef struct gssapi_mech_interface_desc { 313c19800e8SDoug Rabson unsigned gm_version; 314c19800e8SDoug Rabson const char *gm_name; 315c19800e8SDoug Rabson gss_OID_desc gm_mech_oid; 316c19800e8SDoug Rabson _gss_acquire_cred_t *gm_acquire_cred; 317c19800e8SDoug Rabson _gss_release_cred_t *gm_release_cred; 318c19800e8SDoug Rabson _gss_init_sec_context_t *gm_init_sec_context; 319c19800e8SDoug Rabson _gss_accept_sec_context_t *gm_accept_sec_context; 320c19800e8SDoug Rabson _gss_process_context_token_t *gm_process_context_token; 321c19800e8SDoug Rabson _gss_delete_sec_context_t *gm_delete_sec_context; 322c19800e8SDoug Rabson _gss_context_time_t *gm_context_time; 323c19800e8SDoug Rabson _gss_get_mic_t *gm_get_mic; 324c19800e8SDoug Rabson _gss_verify_mic_t *gm_verify_mic; 325c19800e8SDoug Rabson _gss_wrap_t *gm_wrap; 326c19800e8SDoug Rabson _gss_unwrap_t *gm_unwrap; 327c19800e8SDoug Rabson _gss_display_status_t *gm_display_status; 328c19800e8SDoug Rabson _gss_indicate_mechs_t *gm_indicate_mechs; 329c19800e8SDoug Rabson _gss_compare_name_t *gm_compare_name; 330c19800e8SDoug Rabson _gss_display_name_t *gm_display_name; 331c19800e8SDoug Rabson _gss_import_name_t *gm_import_name; 332c19800e8SDoug Rabson _gss_export_name_t *gm_export_name; 333c19800e8SDoug Rabson _gss_release_name_t *gm_release_name; 334c19800e8SDoug Rabson _gss_inquire_cred_t *gm_inquire_cred; 335c19800e8SDoug Rabson _gss_inquire_context_t *gm_inquire_context; 336c19800e8SDoug Rabson _gss_wrap_size_limit_t *gm_wrap_size_limit; 337c19800e8SDoug Rabson _gss_add_cred_t *gm_add_cred; 338c19800e8SDoug Rabson _gss_inquire_cred_by_mech_t *gm_inquire_cred_by_mech; 339c19800e8SDoug Rabson _gss_export_sec_context_t *gm_export_sec_context; 340c19800e8SDoug Rabson _gss_import_sec_context_t *gm_import_sec_context; 341c19800e8SDoug Rabson _gss_inquire_names_for_mech_t *gm_inquire_names_for_mech; 342c19800e8SDoug Rabson _gss_inquire_mechs_for_name_t *gm_inquire_mechs_for_name; 343c19800e8SDoug Rabson _gss_canonicalize_name_t *gm_canonicalize_name; 344c19800e8SDoug Rabson _gss_duplicate_name_t *gm_duplicate_name; 345c19800e8SDoug Rabson _gss_inquire_sec_context_by_oid *gm_inquire_sec_context_by_oid; 346c19800e8SDoug Rabson _gss_inquire_cred_by_oid *gm_inquire_cred_by_oid; 347c19800e8SDoug Rabson _gss_set_sec_context_option *gm_set_sec_context_option; 348c19800e8SDoug Rabson _gss_set_cred_option *gm_set_cred_option; 349c19800e8SDoug Rabson _gss_pseudo_random *gm_pseudo_random; 350c19800e8SDoug Rabson } gssapi_mech_interface_desc, *gssapi_mech_interface; 351c19800e8SDoug Rabson 352c19800e8SDoug Rabson gssapi_mech_interface 353c19800e8SDoug Rabson __gss_get_mechanism(gss_OID /* oid */); 354c19800e8SDoug Rabson 355c19800e8SDoug Rabson gssapi_mech_interface __gss_spnego_initialize(void); 356c19800e8SDoug Rabson gssapi_mech_interface __gss_krb5_initialize(void); 357c19800e8SDoug Rabson gssapi_mech_interface __gss_ntlm_initialize(void); 358c19800e8SDoug Rabson 359c19800e8SDoug Rabson #endif /* GSSAPI_MECH_H */ 360