xref: /freebsd/crypto/krb5/src/windows/leash/Lglobals.h (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
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