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