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