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