1c0b9f4feSDoug Rabson /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 35e53a4f9SPedro F. Giffuni * 4c0b9f4feSDoug Rabson * Copyright (c) 2005 Doug Rabson 5c0b9f4feSDoug Rabson * All rights reserved. 6c0b9f4feSDoug Rabson * 7c0b9f4feSDoug Rabson * Redistribution and use in source and binary forms, with or without 8c0b9f4feSDoug Rabson * modification, are permitted provided that the following conditions 9c0b9f4feSDoug Rabson * are met: 10c0b9f4feSDoug Rabson * 1. Redistributions of source code must retain the above copyright 11c0b9f4feSDoug Rabson * notice, this list of conditions and the following disclaimer. 12c0b9f4feSDoug Rabson * 2. Redistributions in binary form must reproduce the above copyright 13c0b9f4feSDoug Rabson * notice, this list of conditions and the following disclaimer in the 14c0b9f4feSDoug Rabson * documentation and/or other materials provided with the distribution. 15c0b9f4feSDoug Rabson * 16c0b9f4feSDoug Rabson * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17c0b9f4feSDoug Rabson * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18c0b9f4feSDoug Rabson * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19c0b9f4feSDoug Rabson * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20c0b9f4feSDoug Rabson * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21c0b9f4feSDoug Rabson * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22c0b9f4feSDoug Rabson * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23c0b9f4feSDoug Rabson * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24c0b9f4feSDoug Rabson * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25c0b9f4feSDoug Rabson * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26c0b9f4feSDoug Rabson * SUCH DAMAGE. 27c0b9f4feSDoug Rabson * 28c0b9f4feSDoug Rabson * $FreeBSD$ 29c0b9f4feSDoug Rabson */ 30c0b9f4feSDoug Rabson 3133f12199SDoug Rabson #include <unistd.h> 32c0b9f4feSDoug Rabson #include <sys/queue.h> 33c0b9f4feSDoug Rabson 34c0b9f4feSDoug Rabson typedef OM_uint32 _gss_acquire_cred_t 35c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 36c0b9f4feSDoug Rabson const gss_name_t, /* desired_name */ 37c0b9f4feSDoug Rabson OM_uint32, /* time_req */ 38c0b9f4feSDoug Rabson const gss_OID_set, /* desired_mechs */ 39c0b9f4feSDoug Rabson gss_cred_usage_t, /* cred_usage */ 40c0b9f4feSDoug Rabson gss_cred_id_t *, /* output_cred_handle */ 41c0b9f4feSDoug Rabson gss_OID_set *, /* actual_mechs */ 42c0b9f4feSDoug Rabson OM_uint32 * /* time_rec */ 43c0b9f4feSDoug Rabson ); 44c0b9f4feSDoug Rabson 45c0b9f4feSDoug Rabson typedef OM_uint32 _gss_release_cred_t 46c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 47c0b9f4feSDoug Rabson gss_cred_id_t * /* cred_handle */ 48c0b9f4feSDoug Rabson ); 49c0b9f4feSDoug Rabson 50c0b9f4feSDoug Rabson typedef OM_uint32 _gss_init_sec_context_t 51c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 52c0b9f4feSDoug Rabson const gss_cred_id_t, /* initiator_cred_handle */ 53c0b9f4feSDoug Rabson gss_ctx_id_t *, /* context_handle */ 54c0b9f4feSDoug Rabson const gss_name_t, /* target_name */ 55c0b9f4feSDoug Rabson const gss_OID, /* mech_type */ 56c0b9f4feSDoug Rabson OM_uint32, /* req_flags */ 57c0b9f4feSDoug Rabson OM_uint32, /* time_req */ 58c0b9f4feSDoug Rabson const gss_channel_bindings_t, 59c0b9f4feSDoug Rabson /* input_chan_bindings */ 60c0b9f4feSDoug Rabson const gss_buffer_t, /* input_token */ 61c0b9f4feSDoug Rabson gss_OID *, /* actual_mech_type */ 62c0b9f4feSDoug Rabson gss_buffer_t, /* output_token */ 63c0b9f4feSDoug Rabson OM_uint32 *, /* ret_flags */ 64c0b9f4feSDoug Rabson OM_uint32 * /* time_rec */ 65c0b9f4feSDoug Rabson ); 66c0b9f4feSDoug Rabson 67c0b9f4feSDoug Rabson typedef OM_uint32 _gss_accept_sec_context_t 68c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 69c0b9f4feSDoug Rabson gss_ctx_id_t *, /* context_handle */ 70c0b9f4feSDoug Rabson const gss_cred_id_t, /* acceptor_cred_handle */ 71c0b9f4feSDoug Rabson const gss_buffer_t, /* input_token_buffer */ 72c0b9f4feSDoug Rabson const gss_channel_bindings_t, 73c0b9f4feSDoug Rabson /* input_chan_bindings */ 74c0b9f4feSDoug Rabson gss_name_t *, /* src_name */ 75c0b9f4feSDoug Rabson gss_OID *, /* mech_type */ 76c0b9f4feSDoug Rabson gss_buffer_t, /* output_token */ 77c0b9f4feSDoug Rabson OM_uint32 *, /* ret_flags */ 78c0b9f4feSDoug Rabson OM_uint32 *, /* time_rec */ 79c0b9f4feSDoug Rabson gss_cred_id_t * /* delegated_cred_handle */ 80c0b9f4feSDoug Rabson ); 81c0b9f4feSDoug Rabson 82c0b9f4feSDoug Rabson typedef OM_uint32 _gss_process_context_token_t 83c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 84c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 85c0b9f4feSDoug Rabson const gss_buffer_t /* token_buffer */ 86c0b9f4feSDoug Rabson ); 87c0b9f4feSDoug Rabson 88c0b9f4feSDoug Rabson typedef OM_uint32 _gss_delete_sec_context_t 89c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 90c0b9f4feSDoug Rabson gss_ctx_id_t *, /* context_handle */ 91c0b9f4feSDoug Rabson gss_buffer_t /* output_token */ 92c0b9f4feSDoug Rabson ); 93c0b9f4feSDoug Rabson 94c0b9f4feSDoug Rabson typedef OM_uint32 _gss_context_time_t 95c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 96c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 97c0b9f4feSDoug Rabson OM_uint32 * /* time_rec */ 98c0b9f4feSDoug Rabson ); 99c0b9f4feSDoug Rabson 100c0b9f4feSDoug Rabson typedef OM_uint32 _gss_get_mic_t 101c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 102c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 103c0b9f4feSDoug Rabson gss_qop_t, /* qop_req */ 104c0b9f4feSDoug Rabson const gss_buffer_t, /* message_buffer */ 105c0b9f4feSDoug Rabson gss_buffer_t /* message_token */ 106c0b9f4feSDoug Rabson ); 107c0b9f4feSDoug Rabson 108c0b9f4feSDoug Rabson typedef OM_uint32 _gss_verify_mic_t 109c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 110c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 111c0b9f4feSDoug Rabson const gss_buffer_t, /* message_buffer */ 112c0b9f4feSDoug Rabson const gss_buffer_t, /* token_buffer */ 113c0b9f4feSDoug Rabson gss_qop_t * /* qop_state */ 114c0b9f4feSDoug Rabson ); 115c0b9f4feSDoug Rabson 116c0b9f4feSDoug Rabson typedef OM_uint32 _gss_wrap_t 117c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 118c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 119c0b9f4feSDoug Rabson int, /* conf_req_flag */ 120c0b9f4feSDoug Rabson gss_qop_t, /* qop_req */ 121c0b9f4feSDoug Rabson const gss_buffer_t, /* input_message_buffer */ 122c0b9f4feSDoug Rabson int *, /* conf_state */ 123c0b9f4feSDoug Rabson gss_buffer_t /* output_message_buffer */ 124c0b9f4feSDoug Rabson ); 125c0b9f4feSDoug Rabson 126c0b9f4feSDoug Rabson typedef OM_uint32 _gss_unwrap_t 127c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 128c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 129c0b9f4feSDoug Rabson const gss_buffer_t, /* input_message_buffer */ 130c0b9f4feSDoug Rabson gss_buffer_t, /* output_message_buffer */ 131c0b9f4feSDoug Rabson int *, /* conf_state */ 132c0b9f4feSDoug Rabson gss_qop_t * /* qop_state */ 133c0b9f4feSDoug Rabson ); 134c0b9f4feSDoug Rabson 135c0b9f4feSDoug Rabson typedef OM_uint32 _gss_display_status_t 136c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 137c0b9f4feSDoug Rabson OM_uint32, /* status_value */ 138c0b9f4feSDoug Rabson int, /* status_type */ 139c0b9f4feSDoug Rabson const gss_OID, /* mech_type */ 140c0b9f4feSDoug Rabson OM_uint32 *, /* message_context */ 141c0b9f4feSDoug Rabson gss_buffer_t /* status_string */ 142c0b9f4feSDoug Rabson ); 143c0b9f4feSDoug Rabson 144c0b9f4feSDoug Rabson typedef OM_uint32 _gss_indicate_mechs_t 145c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 146c0b9f4feSDoug Rabson gss_OID_set * /* mech_set */ 147c0b9f4feSDoug Rabson ); 148c0b9f4feSDoug Rabson 149c0b9f4feSDoug Rabson typedef OM_uint32 _gss_compare_name_t 150c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 151c0b9f4feSDoug Rabson const gss_name_t, /* name1 */ 152c0b9f4feSDoug Rabson const gss_name_t, /* name2 */ 153c0b9f4feSDoug Rabson int * /* name_equal */ 154c0b9f4feSDoug Rabson ); 155c0b9f4feSDoug Rabson 156c0b9f4feSDoug Rabson typedef OM_uint32 _gss_display_name_t 157c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 158c0b9f4feSDoug Rabson const gss_name_t, /* input_name */ 159c0b9f4feSDoug Rabson gss_buffer_t, /* output_name_buffer */ 160c0b9f4feSDoug Rabson gss_OID * /* output_name_type */ 161c0b9f4feSDoug Rabson ); 162c0b9f4feSDoug Rabson 163c0b9f4feSDoug Rabson typedef OM_uint32 _gss_import_name_t 164c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 165c0b9f4feSDoug Rabson const gss_buffer_t, /* input_name_buffer */ 166c0b9f4feSDoug Rabson const gss_OID, /* input_name_type */ 167c0b9f4feSDoug Rabson gss_name_t * /* output_name */ 168c0b9f4feSDoug Rabson ); 169c0b9f4feSDoug Rabson 170c0b9f4feSDoug Rabson typedef OM_uint32 _gss_export_name_t 171c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 172c0b9f4feSDoug Rabson const gss_name_t, /* input_name */ 173c0b9f4feSDoug Rabson gss_buffer_t /* exported_name */ 174c0b9f4feSDoug Rabson ); 175c0b9f4feSDoug Rabson 176c0b9f4feSDoug Rabson typedef OM_uint32 _gss_release_name_t 177c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 178c0b9f4feSDoug Rabson gss_name_t * /* input_name */ 179c0b9f4feSDoug Rabson ); 180c0b9f4feSDoug Rabson 181c0b9f4feSDoug Rabson typedef OM_uint32 _gss_inquire_cred_t 182c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 183c0b9f4feSDoug Rabson const gss_cred_id_t, /* cred_handle */ 184c0b9f4feSDoug Rabson gss_name_t *, /* name */ 185c0b9f4feSDoug Rabson OM_uint32 *, /* lifetime */ 186c0b9f4feSDoug Rabson gss_cred_usage_t *, /* cred_usage */ 187c0b9f4feSDoug Rabson gss_OID_set * /* mechanisms */ 188c0b9f4feSDoug Rabson ); 189c0b9f4feSDoug Rabson 190c0b9f4feSDoug Rabson typedef OM_uint32 _gss_inquire_context_t 191c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 192c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 193c0b9f4feSDoug Rabson gss_name_t *, /* src_name */ 194c0b9f4feSDoug Rabson gss_name_t *, /* targ_name */ 195c0b9f4feSDoug Rabson OM_uint32 *, /* lifetime_rec */ 196c0b9f4feSDoug Rabson gss_OID *, /* mech_type */ 197c0b9f4feSDoug Rabson OM_uint32 *, /* ctx_flags */ 198c0b9f4feSDoug Rabson int *, /* locally_initiated */ 199c0b9f4feSDoug Rabson int * /* open */ 200c0b9f4feSDoug Rabson ); 201c0b9f4feSDoug Rabson 202c0b9f4feSDoug Rabson typedef OM_uint32 _gss_wrap_size_limit_t 203c0b9f4feSDoug Rabson (OM_uint32 *, /* minor_status */ 204c0b9f4feSDoug Rabson const gss_ctx_id_t, /* context_handle */ 205c0b9f4feSDoug Rabson int, /* conf_req_flag */ 206c0b9f4feSDoug Rabson gss_qop_t, /* qop_req */ 207c0b9f4feSDoug Rabson OM_uint32, /* req_output_size */ 208c0b9f4feSDoug Rabson OM_uint32 * /* max_input_size */ 209c0b9f4feSDoug Rabson ); 210c0b9f4feSDoug Rabson 211c0b9f4feSDoug Rabson typedef OM_uint32 _gss_add_cred_t ( 212c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 213c0b9f4feSDoug Rabson const gss_cred_id_t, /* input_cred_handle */ 214c0b9f4feSDoug Rabson const gss_name_t, /* desired_name */ 215c0b9f4feSDoug Rabson const gss_OID, /* desired_mech */ 216c0b9f4feSDoug Rabson gss_cred_usage_t, /* cred_usage */ 217c0b9f4feSDoug Rabson OM_uint32, /* initiator_time_req */ 218c0b9f4feSDoug Rabson OM_uint32, /* acceptor_time_req */ 219c0b9f4feSDoug Rabson gss_cred_id_t *, /* output_cred_handle */ 220c0b9f4feSDoug Rabson gss_OID_set *, /* actual_mechs */ 221c0b9f4feSDoug Rabson OM_uint32 *, /* initiator_time_rec */ 222c0b9f4feSDoug Rabson OM_uint32 * /* acceptor_time_rec */ 223c0b9f4feSDoug Rabson ); 224c0b9f4feSDoug Rabson 225c0b9f4feSDoug Rabson typedef OM_uint32 _gss_inquire_cred_by_mech_t ( 226c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 227c0b9f4feSDoug Rabson const gss_cred_id_t, /* cred_handle */ 228c0b9f4feSDoug Rabson const gss_OID, /* mech_type */ 229c0b9f4feSDoug Rabson gss_name_t *, /* name */ 230c0b9f4feSDoug Rabson OM_uint32 *, /* initiator_lifetime */ 231c0b9f4feSDoug Rabson OM_uint32 *, /* acceptor_lifetime */ 232c0b9f4feSDoug Rabson gss_cred_usage_t * /* cred_usage */ 233c0b9f4feSDoug Rabson ); 234c0b9f4feSDoug Rabson 235c0b9f4feSDoug Rabson typedef OM_uint32 _gss_export_sec_context_t ( 236c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 237c0b9f4feSDoug Rabson gss_ctx_id_t *, /* context_handle */ 238c0b9f4feSDoug Rabson gss_buffer_t /* interprocess_token */ 239c0b9f4feSDoug Rabson ); 240c0b9f4feSDoug Rabson 241c0b9f4feSDoug Rabson typedef OM_uint32 _gss_import_sec_context_t ( 242c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 243c0b9f4feSDoug Rabson const gss_buffer_t, /* interprocess_token */ 244c0b9f4feSDoug Rabson gss_ctx_id_t * /* context_handle */ 245c0b9f4feSDoug Rabson ); 246c0b9f4feSDoug Rabson 247c0b9f4feSDoug Rabson typedef OM_uint32 _gss_inquire_names_for_mech_t ( 248c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 249c0b9f4feSDoug Rabson const gss_OID, /* mechanism */ 250c0b9f4feSDoug Rabson gss_OID_set * /* name_types */ 251c0b9f4feSDoug Rabson ); 252c0b9f4feSDoug Rabson 253c0b9f4feSDoug Rabson typedef OM_uint32 _gss_inquire_mechs_for_name_t ( 254c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 255c0b9f4feSDoug Rabson const gss_name_t, /* input_name */ 256c0b9f4feSDoug Rabson gss_OID_set * /* mech_types */ 257c0b9f4feSDoug Rabson ); 258c0b9f4feSDoug Rabson 259c0b9f4feSDoug Rabson typedef OM_uint32 _gss_canonicalize_name_t ( 260c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 261c0b9f4feSDoug Rabson const gss_name_t, /* input_name */ 262c0b9f4feSDoug Rabson const gss_OID, /* mech_type */ 263c0b9f4feSDoug Rabson gss_name_t * /* output_name */ 264c0b9f4feSDoug Rabson ); 265c0b9f4feSDoug Rabson 266c0b9f4feSDoug Rabson typedef OM_uint32 _gss_duplicate_name_t ( 267c0b9f4feSDoug Rabson OM_uint32 *, /* minor_status */ 268c0b9f4feSDoug Rabson const gss_name_t, /* src_name */ 269c0b9f4feSDoug Rabson gss_name_t * /* dest_name */ 270c0b9f4feSDoug Rabson ); 271c0b9f4feSDoug Rabson 27233f12199SDoug Rabson typedef OM_uint32 _gss_inquire_sec_context_by_oid 27333f12199SDoug Rabson (OM_uint32 *, /* minor_status */ 27433f12199SDoug Rabson const gss_ctx_id_t, /* context_handle */ 27533f12199SDoug Rabson const gss_OID, /* desired_object */ 27633f12199SDoug Rabson gss_buffer_set_t * /* result */ 277c0b9f4feSDoug Rabson ); 278c0b9f4feSDoug Rabson 27933f12199SDoug Rabson typedef OM_uint32 _gss_inquire_cred_by_oid 28033f12199SDoug Rabson (OM_uint32 *, /* bminor_status */ 28133f12199SDoug Rabson const gss_cred_id_t, /* cred_handle, */ 28233f12199SDoug Rabson const gss_OID, /* desired_object */ 28333f12199SDoug Rabson gss_buffer_set_t * /* data_set */ 284c0b9f4feSDoug Rabson ); 285c0b9f4feSDoug Rabson 28633f12199SDoug Rabson typedef OM_uint32 _gss_set_sec_context_option 28733f12199SDoug Rabson (OM_uint32 *, /* minor status */ 28833f12199SDoug Rabson gss_ctx_id_t *, /* context */ 28933f12199SDoug Rabson const gss_OID, /* option to set */ 29033f12199SDoug Rabson const gss_buffer_t /* option value */ 29133f12199SDoug Rabson ); 29233f12199SDoug Rabson 29333f12199SDoug Rabson typedef OM_uint32 _gss_set_cred_option 29433f12199SDoug Rabson (OM_uint32 *, /* minor status */ 29533f12199SDoug Rabson gss_cred_id_t *, /* cred */ 29633f12199SDoug Rabson const gss_OID, /* option to set */ 29733f12199SDoug Rabson const gss_buffer_t /* option value */ 29833f12199SDoug Rabson ); 29933f12199SDoug Rabson 30033f12199SDoug Rabson typedef OM_uint32 _gss_pseudo_random 30133f12199SDoug Rabson (OM_uint32 *, /* minor status */ 30233f12199SDoug Rabson gss_ctx_id_t, /* context */ 30333f12199SDoug Rabson int, /* PRF key */ 30433f12199SDoug Rabson const gss_buffer_t, /* PRF input */ 30533f12199SDoug Rabson ssize_t, /* desired output length */ 30633f12199SDoug Rabson gss_buffer_t /* PRF output */ 307c0b9f4feSDoug Rabson ); 308c0b9f4feSDoug Rabson 3098f55a568SDoug Rabson typedef OM_uint32 _gss_pname_to_uid 3108f55a568SDoug Rabson (OM_uint32 *, /* minor status */ 3118f55a568SDoug Rabson gss_name_t pname, /* principal name */ 3128f55a568SDoug Rabson gss_OID mech, /* mechanism to query */ 3138f55a568SDoug Rabson uid_t *uidp /* pointer to UID for result */ 3148f55a568SDoug Rabson ); 3158f55a568SDoug Rabson 316c0b9f4feSDoug Rabson struct _gss_mech_switch { 317c0b9f4feSDoug Rabson SLIST_ENTRY(_gss_mech_switch) gm_link; 31833f12199SDoug Rabson const char *gm_name_prefix; 319c0b9f4feSDoug Rabson gss_OID_desc gm_mech_oid; 320c0b9f4feSDoug Rabson void *gm_so; 321c0b9f4feSDoug Rabson _gss_acquire_cred_t *gm_acquire_cred; 322c0b9f4feSDoug Rabson _gss_release_cred_t *gm_release_cred; 323c0b9f4feSDoug Rabson _gss_init_sec_context_t *gm_init_sec_context; 324c0b9f4feSDoug Rabson _gss_accept_sec_context_t *gm_accept_sec_context; 325c0b9f4feSDoug Rabson _gss_process_context_token_t *gm_process_context_token; 326c0b9f4feSDoug Rabson _gss_delete_sec_context_t *gm_delete_sec_context; 327c0b9f4feSDoug Rabson _gss_context_time_t *gm_context_time; 328c0b9f4feSDoug Rabson _gss_get_mic_t *gm_get_mic; 329c0b9f4feSDoug Rabson _gss_verify_mic_t *gm_verify_mic; 330c0b9f4feSDoug Rabson _gss_wrap_t *gm_wrap; 331c0b9f4feSDoug Rabson _gss_unwrap_t *gm_unwrap; 332c0b9f4feSDoug Rabson _gss_display_status_t *gm_display_status; 333c0b9f4feSDoug Rabson _gss_indicate_mechs_t *gm_indicate_mechs; 334c0b9f4feSDoug Rabson _gss_compare_name_t *gm_compare_name; 335c0b9f4feSDoug Rabson _gss_display_name_t *gm_display_name; 336c0b9f4feSDoug Rabson _gss_import_name_t *gm_import_name; 337c0b9f4feSDoug Rabson _gss_export_name_t *gm_export_name; 338c0b9f4feSDoug Rabson _gss_release_name_t *gm_release_name; 339c0b9f4feSDoug Rabson _gss_inquire_cred_t *gm_inquire_cred; 340c0b9f4feSDoug Rabson _gss_inquire_context_t *gm_inquire_context; 341c0b9f4feSDoug Rabson _gss_wrap_size_limit_t *gm_wrap_size_limit; 342c0b9f4feSDoug Rabson _gss_add_cred_t *gm_add_cred; 343c0b9f4feSDoug Rabson _gss_inquire_cred_by_mech_t *gm_inquire_cred_by_mech; 344c0b9f4feSDoug Rabson _gss_export_sec_context_t *gm_export_sec_context; 345c0b9f4feSDoug Rabson _gss_import_sec_context_t *gm_import_sec_context; 346c0b9f4feSDoug Rabson _gss_inquire_names_for_mech_t *gm_inquire_names_for_mech; 347c0b9f4feSDoug Rabson _gss_inquire_mechs_for_name_t *gm_inquire_mechs_for_name; 348c0b9f4feSDoug Rabson _gss_canonicalize_name_t *gm_canonicalize_name; 349c0b9f4feSDoug Rabson _gss_duplicate_name_t *gm_duplicate_name; 35033f12199SDoug Rabson _gss_inquire_sec_context_by_oid *gm_inquire_sec_context_by_oid; 35133f12199SDoug Rabson _gss_inquire_cred_by_oid *gm_inquire_cred_by_oid; 35233f12199SDoug Rabson _gss_set_sec_context_option *gm_set_sec_context_option; 35333f12199SDoug Rabson _gss_set_cred_option *gm_set_cred_option; 35433f12199SDoug Rabson _gss_pseudo_random *gm_pseudo_random; 3558f55a568SDoug Rabson _gss_pname_to_uid *gm_pname_to_uid; 356c0b9f4feSDoug Rabson }; 357c0b9f4feSDoug Rabson SLIST_HEAD(_gss_mech_switch_list, _gss_mech_switch); 358c0b9f4feSDoug Rabson extern struct _gss_mech_switch_list _gss_mechs; 359c0b9f4feSDoug Rabson extern gss_OID_set _gss_mech_oids; 360c0b9f4feSDoug Rabson 361c0b9f4feSDoug Rabson extern void _gss_load_mech(void); 362c0b9f4feSDoug Rabson extern struct _gss_mech_switch *_gss_find_mech_switch(gss_OID); 36333f12199SDoug Rabson extern void _gss_mg_error(struct _gss_mech_switch *m, OM_uint32 maj, 36433f12199SDoug Rabson OM_uint32 min); 365ae771770SStanislav Sedov extern void _gss_mg_collect_error(gss_OID mech, OM_uint32 maj, OM_uint32 min); 366