1 /* $NetBSD: external.c,v 1.1.1.1 2011/04/13 18:14:47 elric Exp $ */ 2 3 /* 4 * Copyright (c) 2006 Kungliga Tekniska Högskolan 5 * (Royal Institute of Technology, Stockholm, Sweden). 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * 3. Neither the name of the Institute nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 */ 35 36 #include "ntlm.h" 37 38 static gss_mo_desc ntlm_mo[] = { 39 { 40 GSS_C_MA_SASL_MECH_NAME, 41 GSS_MO_MA, 42 "SASL mech name", 43 "NTLM", 44 _gss_mo_get_ctx_as_string, 45 NULL 46 }, 47 { 48 GSS_C_MA_MECH_NAME, 49 GSS_MO_MA, 50 "Mechanism name", 51 "NTLMSPP", 52 _gss_mo_get_ctx_as_string, 53 NULL 54 }, 55 { 56 GSS_C_MA_MECH_DESCRIPTION, 57 GSS_MO_MA, 58 "Mechanism description", 59 "Heimdal NTLMSSP Mechanism", 60 _gss_mo_get_ctx_as_string, 61 NULL 62 } 63 }; 64 65 static gssapi_mech_interface_desc ntlm_mech = { 66 GMI_VERSION, 67 "ntlm", 68 {10, rk_UNCONST("\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a") }, 69 0, 70 _gss_ntlm_acquire_cred, 71 _gss_ntlm_release_cred, 72 _gss_ntlm_init_sec_context, 73 _gss_ntlm_accept_sec_context, 74 _gss_ntlm_process_context_token, 75 _gss_ntlm_delete_sec_context, 76 _gss_ntlm_context_time, 77 _gss_ntlm_get_mic, 78 _gss_ntlm_verify_mic, 79 _gss_ntlm_wrap, 80 _gss_ntlm_unwrap, 81 _gss_ntlm_display_status, 82 NULL, 83 _gss_ntlm_compare_name, 84 _gss_ntlm_display_name, 85 _gss_ntlm_import_name, 86 _gss_ntlm_export_name, 87 _gss_ntlm_release_name, 88 _gss_ntlm_inquire_cred, 89 _gss_ntlm_inquire_context, 90 _gss_ntlm_wrap_size_limit, 91 _gss_ntlm_add_cred, 92 _gss_ntlm_inquire_cred_by_mech, 93 _gss_ntlm_export_sec_context, 94 _gss_ntlm_import_sec_context, 95 _gss_ntlm_inquire_names_for_mech, 96 _gss_ntlm_inquire_mechs_for_name, 97 _gss_ntlm_canonicalize_name, 98 _gss_ntlm_duplicate_name, 99 _gss_ntlm_inquire_sec_context_by_oid, 100 NULL, 101 NULL, 102 NULL, 103 NULL, 104 NULL, 105 NULL, 106 NULL, 107 NULL, 108 NULL, 109 NULL, 110 NULL, 111 _gss_ntlm_iter_creds_f, 112 _gss_ntlm_destroy_cred, 113 NULL, 114 NULL, 115 NULL, 116 NULL, 117 ntlm_mo, 118 sizeof(ntlm_mo) / sizeof(ntlm_mo[0]) 119 }; 120 121 gssapi_mech_interface 122 __gss_ntlm_initialize(void) 123 { 124 return &ntlm_mech; 125 } 126