1 //***************************************************************************** 2 // File: lgobals.h 3 // By: Arthur David Leather 4 // Created: 12/02/98 5 // Copyright: @1998 Massachusetts Institute of Technology - All rights 6 // reserved. 7 // Description: H file for lgobals.cpp. Contains global variables and helper 8 // functions 9 // 10 // History: 11 // 12 // MM/DD/YY Inits Description of Change 13 // 02/02/98 ADL Original 14 //***************************************************************************** 15 16 #if !defined LEASHGLOBALS_H 17 #define LEASHGLOBALS_H 18 19 #include <tlhelp32.h> 20 #include <loadfuncs-com_err.h> 21 #include <loadfuncs-krb5.h> 22 ////#include <loadfuncs-krb.h> 23 #include <loadfuncs-profile.h> 24 #include <loadfuncs-leash.h> 25 #include <krb5.h> 26 27 // toolhelp functions 28 TYPEDEF_FUNC( 29 HANDLE, 30 WINAPI, 31 CreateToolhelp32Snapshot, 32 (DWORD, DWORD) 33 ); 34 TYPEDEF_FUNC( 35 BOOL, 36 WINAPI, 37 Module32First, 38 (HANDLE, LPMODULEENTRY32) 39 ); 40 TYPEDEF_FUNC( 41 BOOL, 42 WINAPI, 43 Module32Next, 44 (HANDLE, LPMODULEENTRY32) 45 ); 46 47 // psapi functions 48 TYPEDEF_FUNC( 49 DWORD, 50 WINAPI, 51 GetModuleFileNameExA, 52 (HANDLE, HMODULE, LPSTR, DWORD) 53 ); 54 TYPEDEF_FUNC( 55 BOOL, 56 WINAPI, 57 EnumProcessModules, 58 (HANDLE, HMODULE*, DWORD, LPDWORD) 59 ); 60 61 #define pGetModuleFileNameEx pGetModuleFileNameExA 62 63 extern DECL_FUNC_PTR(Leash_kdestroy); 64 extern DECL_FUNC_PTR(Leash_changepwd_dlg); 65 extern DECL_FUNC_PTR(Leash_changepwd_dlg_ex); 66 extern DECL_FUNC_PTR(Leash_kinit_dlg); 67 extern DECL_FUNC_PTR(Leash_kinit_dlg_ex); 68 extern DECL_FUNC_PTR(Leash_timesync); 69 extern DECL_FUNC_PTR(Leash_get_default_uppercaserealm); 70 extern DECL_FUNC_PTR(Leash_set_default_uppercaserealm); 71 extern DECL_FUNC_PTR(Leash_get_default_mslsa_import); 72 extern DECL_FUNC_PTR(Leash_import); 73 extern DECL_FUNC_PTR(Leash_importable); 74 extern DECL_FUNC_PTR(Leash_renew); 75 76 // psapi functions 77 extern DECL_FUNC_PTR(GetModuleFileNameExA); 78 extern DECL_FUNC_PTR(EnumProcessModules); 79 80 // toolhelp functions 81 extern DECL_FUNC_PTR(CreateToolhelp32Snapshot); 82 extern DECL_FUNC_PTR(Module32First); 83 extern DECL_FUNC_PTR(Module32Next); 84 85 // com_err functions 86 extern DECL_FUNC_PTR(error_message); 87 88 // krb5 functions 89 extern DECL_FUNC_PTR(krb5_cc_default_name); 90 extern DECL_FUNC_PTR(krb5_cc_set_default_name); 91 extern DECL_FUNC_PTR(krb5_get_default_config_files); 92 extern DECL_FUNC_PTR(krb5_free_config_files); 93 extern DECL_FUNC_PTR(krb5_free_context); 94 extern DECL_FUNC_PTR(krb5_get_default_realm); 95 extern DECL_FUNC_PTR(krb5_free_default_realm); 96 extern DECL_FUNC_PTR(krb5_cc_get_principal); 97 extern DECL_FUNC_PTR(krb5_build_principal); 98 extern DECL_FUNC_PTR(krb5_c_random_make_octets); 99 extern DECL_FUNC_PTR(krb5_get_init_creds_password); 100 extern DECL_FUNC_PTR(krb5_free_cred_contents); 101 extern DECL_FUNC_PTR(krb5_cc_resolve); 102 extern DECL_FUNC_PTR(krb5_unparse_name); 103 extern DECL_FUNC_PTR(krb5_free_unparsed_name); 104 extern DECL_FUNC_PTR(krb5_free_principal); 105 extern DECL_FUNC_PTR(krb5_cc_close); 106 extern DECL_FUNC_PTR(krb5_cc_default); 107 extern DECL_FUNC_PTR(krb5_cc_destroy); 108 extern DECL_FUNC_PTR(krb5_cc_set_flags); 109 extern DECL_FUNC_PTR(krb5_cc_get_name); 110 extern DECL_FUNC_PTR(krb5_cc_start_seq_get); 111 extern DECL_FUNC_PTR(krb5_cc_end_seq_get); 112 extern DECL_FUNC_PTR(krb5_cc_next_cred); 113 extern DECL_FUNC_PTR(krb5_cccol_cursor_new); 114 extern DECL_FUNC_PTR(krb5_cccol_cursor_next); 115 extern DECL_FUNC_PTR(krb5_cccol_cursor_free); 116 extern DECL_FUNC_PTR(krb5_decode_ticket); 117 extern DECL_FUNC_PTR(krb5_free_ticket); 118 extern DECL_FUNC_PTR(krb5_init_context); 119 extern DECL_FUNC_PTR(krb5_is_config_principal); 120 extern DECL_FUNC_PTR(krb5_cc_switch); 121 extern DECL_FUNC_PTR(krb5_build_principal_ext); 122 extern DECL_FUNC_PTR(krb5_get_renewed_creds); 123 extern DECL_FUNC_PTR(krb5_cc_initialize); 124 extern DECL_FUNC_PTR(krb5_cc_store_cred); 125 extern DECL_FUNC_PTR(krb5_cc_get_full_name); 126 extern DECL_FUNC_PTR(krb5_free_string); 127 extern DECL_FUNC_PTR(krb5_enctype_to_name); 128 extern DECL_FUNC_PTR(krb5_cc_get_type); 129 extern DECL_FUNC_PTR(krb5int_cc_user_set_default_name); 130 // extern DECL_FUNC_PTR(krb5_get_host_realm); 131 132 // profile functions 133 extern DECL_FUNC_PTR(profile_release); 134 extern DECL_FUNC_PTR(profile_init); 135 extern DECL_FUNC_PTR(profile_flush); 136 extern DECL_FUNC_PTR(profile_rename_section); 137 extern DECL_FUNC_PTR(profile_update_relation); 138 extern DECL_FUNC_PTR(profile_clear_relation); 139 extern DECL_FUNC_PTR(profile_add_relation); 140 extern DECL_FUNC_PTR(profile_get_relation_names); 141 extern DECL_FUNC_PTR(profile_get_subsection_names); 142 extern DECL_FUNC_PTR(profile_get_values); 143 extern DECL_FUNC_PTR(profile_free_list); 144 extern DECL_FUNC_PTR(profile_abandon); 145 extern DECL_FUNC_PTR(profile_get_string); 146 extern DECL_FUNC_PTR(profile_release_string); 147 148 #define SKIP_MINSIZE 0 149 #define LEFT_SIDE 1 150 #define RIGHT_SIDE 2 151 #define TOP_SIDE 3 152 #define RESET_MINSIZE 4 153 #define BOTTOM_SIDE 6 154 155 #define ADMIN_SERVER "admin_server" 156 157 #define ON 1 158 #define OFF 0 159 #define TRUE_FLAG 1 160 #define FALSE_FLAG 0 161 #ifdef _WIN64 162 #define LEASHDLL "leashw64.dll" 163 #define KERB5DLL "krb5_64.dll" 164 #define KERB5_PPROFILE_DLL "xpprof64.dll" 165 #else 166 #define LEASHDLL "leashw32.dll" 167 #define KERB5DLL "krb5_32.dll" 168 #define KERB5_PPROFILE_DLL "xpprof32.dll" 169 #endif 170 #define SECUR32DLL "secur32.dll" 171 #define KRB_FILE "KRB.CON" 172 #define KRBREALM_FILE "KRBREALM.CON" 173 #define TICKET_FILE "TICKET.KRB" 174 175 #define LEASH_HELP_FILE "leash.chm" 176 177 // Get ticket info for the default ccache only 178 extern void LeashKRB5ListDefaultTickets(TICKETINFO *ticketinfo); 179 // clean up ticket info 180 extern void LeashKRB5FreeTicketInfo(TICKETINFO *ticketinfo); 181 182 // Allocate TICKETINFO for each ccache that contain tickets 183 extern void LeashKRB5ListAllTickets(TICKETINFO **ticketinfolist); 184 // clean up ticket info list 185 extern void LeashKRB5FreeTickets(TICKETINFO **ticketinfolist); 186 187 class TicketInfoWrapper { 188 public: 189 HANDLE lockObj; 190 TICKETINFO Krb5; 191 }; 192 extern TicketInfoWrapper ticketinfo; 193 194 #endif 195