Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/krb5/src/windows/leash/Lglobals.h
34889 views
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
193