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_renew); 72 73 // psapi functions 74 extern DECL_FUNC_PTR(GetModuleFileNameExA); 75 extern DECL_FUNC_PTR(EnumProcessModules); 76 77 // toolhelp functions 78 extern DECL_FUNC_PTR(CreateToolhelp32Snapshot); 79 extern DECL_FUNC_PTR(Module32First); 80 extern DECL_FUNC_PTR(Module32Next); 81 82 // com_err functions 83 extern DECL_FUNC_PTR(error_message); 84 85 // krb5 functions 86 extern DECL_FUNC_PTR(krb5_cc_default_name); 87 extern DECL_FUNC_PTR(krb5_cc_set_default_name); 88 extern DECL_FUNC_PTR(krb5_get_default_config_files); 89 extern DECL_FUNC_PTR(krb5_free_config_files); 90 extern DECL_FUNC_PTR(krb5_free_context); 91 extern DECL_FUNC_PTR(krb5_get_default_realm); 92 extern DECL_FUNC_PTR(krb5_free_default_realm); 93 extern DECL_FUNC_PTR(krb5_cc_get_principal); 94 extern DECL_FUNC_PTR(krb5_build_principal); 95 extern DECL_FUNC_PTR(krb5_c_random_make_octets); 96 extern DECL_FUNC_PTR(krb5_get_init_creds_password); 97 extern DECL_FUNC_PTR(krb5_free_cred_contents); 98 extern DECL_FUNC_PTR(krb5_cc_resolve); 99 extern DECL_FUNC_PTR(krb5_unparse_name); 100 extern DECL_FUNC_PTR(krb5_free_unparsed_name); 101 extern DECL_FUNC_PTR(krb5_free_principal); 102 extern DECL_FUNC_PTR(krb5_cc_close); 103 extern DECL_FUNC_PTR(krb5_cc_default); 104 extern DECL_FUNC_PTR(krb5_cc_destroy); 105 extern DECL_FUNC_PTR(krb5_cc_set_flags); 106 extern DECL_FUNC_PTR(krb5_cc_get_name); 107 extern DECL_FUNC_PTR(krb5_cc_start_seq_get); 108 extern DECL_FUNC_PTR(krb5_cc_end_seq_get); 109 extern DECL_FUNC_PTR(krb5_cc_next_cred); 110 extern DECL_FUNC_PTR(krb5_cccol_cursor_new); 111 extern DECL_FUNC_PTR(krb5_cccol_cursor_next); 112 extern DECL_FUNC_PTR(krb5_cccol_cursor_free); 113 extern DECL_FUNC_PTR(krb5_decode_ticket); 114 extern DECL_FUNC_PTR(krb5_free_ticket); 115 extern DECL_FUNC_PTR(krb5_init_context); 116 extern DECL_FUNC_PTR(krb5_is_config_principal); 117 extern DECL_FUNC_PTR(krb5_cc_switch); 118 extern DECL_FUNC_PTR(krb5_build_principal_ext); 119 extern DECL_FUNC_PTR(krb5_get_renewed_creds); 120 extern DECL_FUNC_PTR(krb5_cc_initialize); 121 extern DECL_FUNC_PTR(krb5_cc_store_cred); 122 extern DECL_FUNC_PTR(krb5_cc_get_full_name); 123 extern DECL_FUNC_PTR(krb5_free_string); 124 extern DECL_FUNC_PTR(krb5_enctype_to_name); 125 extern DECL_FUNC_PTR(krb5_cc_get_type); 126 extern DECL_FUNC_PTR(krb5int_cc_user_set_default_name); 127 // extern DECL_FUNC_PTR(krb5_get_host_realm); 128 129 // profile functions 130 extern DECL_FUNC_PTR(profile_release); 131 extern DECL_FUNC_PTR(profile_init); 132 extern DECL_FUNC_PTR(profile_flush); 133 extern DECL_FUNC_PTR(profile_rename_section); 134 extern DECL_FUNC_PTR(profile_update_relation); 135 extern DECL_FUNC_PTR(profile_clear_relation); 136 extern DECL_FUNC_PTR(profile_add_relation); 137 extern DECL_FUNC_PTR(profile_get_relation_names); 138 extern DECL_FUNC_PTR(profile_get_subsection_names); 139 extern DECL_FUNC_PTR(profile_get_values); 140 extern DECL_FUNC_PTR(profile_free_list); 141 extern DECL_FUNC_PTR(profile_abandon); 142 extern DECL_FUNC_PTR(profile_get_string); 143 extern DECL_FUNC_PTR(profile_release_string); 144 145 #define SKIP_MINSIZE 0 146 #define LEFT_SIDE 1 147 #define RIGHT_SIDE 2 148 #define TOP_SIDE 3 149 #define RESET_MINSIZE 4 150 #define BOTTOM_SIDE 6 151 152 #define ADMIN_SERVER "admin_server" 153 154 #define ON 1 155 #define OFF 0 156 #define TRUE_FLAG 1 157 #define FALSE_FLAG 0 158 #ifdef _WIN64 159 #define LEASHDLL "leashw64.dll" 160 #define KERB5DLL "krb5_64.dll" 161 #define KERB5_PPROFILE_DLL "xpprof64.dll" 162 #else 163 #define LEASHDLL "leashw32.dll" 164 #define KERB5DLL "krb5_32.dll" 165 #define KERB5_PPROFILE_DLL "xpprof32.dll" 166 #endif 167 #define SECUR32DLL "secur32.dll" 168 #define KRB_FILE "KRB.CON" 169 #define KRBREALM_FILE "KRBREALM.CON" 170 #define TICKET_FILE "TICKET.KRB" 171 172 #define LEASH_HELP_FILE "leash.chm" 173 174 // Get ticket info for the default ccache only 175 extern void LeashKRB5ListDefaultTickets(TICKETINFO *ticketinfo); 176 // clean up ticket info 177 extern void LeashKRB5FreeTicketInfo(TICKETINFO *ticketinfo); 178 179 // Allocate TICKETINFO for each ccache that contain tickets 180 extern void LeashKRB5ListAllTickets(TICKETINFO **ticketinfolist); 181 // clean up ticket info list 182 extern void LeashKRB5FreeTickets(TICKETINFO **ticketinfolist); 183 184 class TicketInfoWrapper { 185 public: 186 HANDLE lockObj; 187 TICKETINFO Krb5; 188 }; 189 extern TicketInfoWrapper ticketinfo; 190 191 #endif 192