2
* Copyright (c) 2005 Massachusetts Institute of Technology
4
* Permission is hereby granted, free of charge, to any person
5
* obtaining a copy of this software and associated documentation
6
* files (the "Software"), to deal in the Software without
7
* restriction, including without limitation the rights to use, copy,
8
* modify, merge, publish, distribute, sublicense, and/or sell copies
9
* of the Software, and to permit persons to whom the Software is
10
* furnished to do so, subject to the following conditions:
12
* The above copyright notice and this permission notice shall be
13
* included in all copies or substantial portions of the Software.
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
#include<khmsgtypes.h>
39
Runs in the context of the UI thread.
41
INT_PTR CALLBACK krb5_pp_proc(HWND hwnd,
50
khui_property_sheet * s;
53
wchar_t unavailable[64];
58
p = (PROPSHEETPAGE *) lParam;
59
s = (khui_property_sheet *) p->lParam;
62
#pragma warning(disable: 4244)
63
SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR) s);
66
LoadString(hResModule, IDS_UNAVAILABLE,
67
unavailable, ARRAYLENGTH(unavailable));
71
kcdb_cred_get_name(s->cred, buf, &cbsize);
72
SetDlgItemText(hwnd, IDC_PPK5_NAME, buf);
75
rv = kcdb_cred_get_attr_string(s->cred,
78
if (KHM_SUCCEEDED(rv))
79
SetDlgItemText(hwnd, IDC_PPK5_ISSUE, buf);
81
SetDlgItemText(hwnd, IDC_PPK5_ISSUE, unavailable);
84
rv = kcdb_cred_get_attr_string(s->cred,
87
if (KHM_SUCCEEDED(rv))
88
SetDlgItemText(hwnd, IDC_PPK5_VALID, buf);
90
SetDlgItemText(hwnd, IDC_PPK5_VALID, unavailable);
93
rv = kcdb_cred_get_attr_string(s->cred,
94
KCDB_ATTR_RENEW_EXPIRE,
96
if (KHM_SUCCEEDED(rv))
97
SetDlgItemText(hwnd, IDC_PPK5_RENEW, buf);
99
SetDlgItemText(hwnd, IDC_PPK5_RENEW, unavailable);
102
cbsize = sizeof(tflags);
103
rv = kcdb_cred_get_attr(s->cred,
108
if (KHM_SUCCEEDED(rv)) {
110
#define ADDBITFLAG(f,s) \
112
LoadString(hResModule, s, buf, ARRAYLENGTH(buf)); \
113
SendDlgItemMessage(hwnd, IDC_PPK5_FLAGS, LB_ADDSTRING, 0, (LPARAM) buf); \
116
ADDBITFLAG(TKT_FLG_FORWARDABLE, IDS_FLG_FORWARDABLE);
117
ADDBITFLAG(TKT_FLG_FORWARDED, IDS_FLG_FORWARDED);
118
ADDBITFLAG(TKT_FLG_PROXIABLE, IDS_FLG_PROXIABLE);
119
ADDBITFLAG(TKT_FLG_PROXY, IDS_FLG_PROXY);
120
ADDBITFLAG(TKT_FLG_MAY_POSTDATE, IDS_FLG_MAY_POSTDATE);
121
ADDBITFLAG(TKT_FLG_POSTDATED, IDS_FLG_POSTDATED);
122
ADDBITFLAG(TKT_FLG_INVALID, IDS_FLG_INVALID);
123
ADDBITFLAG(TKT_FLG_RENEWABLE, IDS_FLG_RENEWABLE);
124
ADDBITFLAG(TKT_FLG_INITIAL, IDS_FLG_INITIAL);
125
ADDBITFLAG(TKT_FLG_PRE_AUTH, IDS_FLG_PRE_AUTH);
126
ADDBITFLAG(TKT_FLG_HW_AUTH, IDS_FLG_HW_AUTH);
127
ADDBITFLAG(TKT_FLG_TRANSIT_POLICY_CHECKED, IDS_FLG_TRANSIT_POL);
128
ADDBITFLAG(TKT_FLG_OK_AS_DELEGATE, IDS_FLG_OK_DELEGATE);
129
ADDBITFLAG(TKT_FLG_ANONYMOUS, IDS_FLG_ANONYMOUS);
146
void k5_pp_begin(khui_property_sheet * s)
150
if(s->credtype == credtype_id_krb5 &&
152
p = PMALLOC(sizeof(*p));
153
ZeroMemory(p, sizeof(*p));
155
p->dwSize = sizeof(*p);
157
p->hInstance = hResModule;
158
p->pszTemplate = MAKEINTRESOURCE(IDD_PP_KRB5C);
159
p->pfnDlgProc = krb5_pp_proc;
160
p->lParam = (LPARAM) s;
161
khui_ps_add_page(s, credtype_id_krb5, 0, p, NULL);
165
void k5_pp_end(khui_property_sheet * s)
167
khui_property_page * p = NULL;
169
khui_ps_find_page(s, credtype_id_krb5, &p);