1 |
/* wptKeyPropsDlg.cpp - WinPT key properties dialog |
/* wptKeyPropsDlg.cpp - WinPT key properties dialog |
2 |
* Copyright (C) 2000, 2001, 2002, 2003 Timo Schulz |
* Copyright (C) 2000, 2001, 2002, 2003, 2005 Timo Schulz |
3 |
* |
* |
4 |
* This file is part of WinPT. |
* This file is part of WinPT. |
5 |
* |
* |
37 |
|
|
38 |
|
|
39 |
static void |
static void |
40 |
do_change_ownertrust( winpt_key_t k, const char *s ) |
do_change_ownertrust (winpt_key_t k, const char *s) |
41 |
{ |
{ |
42 |
char ot[64], *p; |
char ot[64]; |
43 |
|
|
44 |
if( strstr( s, "ultimate" ) ) { |
if( strstr( s, "ultimate" ) ) { |
45 |
listview_get_item_text( k->callback.ctl, k->callback.idx, 5, ot, sizeof ot-1 ); |
listview_get_item_text (k->callback.ctl, k->callback.idx, 5, ot, DIM (ot)-1); |
46 |
if( (p = strrchr( ot, ']' )) ) |
strcpy (ot, "Ultimate"); |
47 |
strcpy( ot + (p - ot) + 2, "Ultimate" ); |
listview_add_sub_item (k->callback.ctl, k->callback.idx, 5, ot); |
|
else |
|
|
strcpy( ot, "Ultimate" ); |
|
|
listview_add_sub_item( k->callback.ctl, k->callback.idx, 5, ot ); |
|
48 |
/* fixme: If we switch back from Ultimate to a lower level */ |
/* fixme: If we switch back from Ultimate to a lower level */ |
49 |
} |
} |
50 |
} /* do_change_ownertrust */ |
} /* do_change_ownertrust */ |
51 |
|
|
52 |
|
|
53 |
static int |
static int |
54 |
do_check_key( gpgme_key_t key ) |
do_check_key (gpgme_key_t key) |
55 |
{ |
{ |
56 |
int okay = 0; |
int okay = 0; |
57 |
okay = gpgme_key_get_ulong_attr( key, GPGME_ATTR_KEY_EXPIRED, NULL, 0 ); |
okay = gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_EXPIRED, NULL, 0); |
58 |
if( !okay ) |
if (!okay) |
59 |
okay = gpgme_key_get_ulong_attr( key, GPGME_ATTR_KEY_REVOKED, NULL, 0 ); |
okay = gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_REVOKED, NULL, 0); |
60 |
return okay; |
return okay; |
61 |
} /* do_check_key */ |
} /* do_check_key */ |
62 |
|
|
85 |
} /* ownertrust_to_string */ |
} /* ownertrust_to_string */ |
86 |
|
|
87 |
|
|
88 |
|
#define PHOTO_TMPNAME "winpt_temp_photo.jpg" |
89 |
|
|
90 |
static int |
static int |
91 |
keyprops_show_photo (HWND dlg, gpgme_key_t key) |
keyprops_show_photo (HWND dlg, gpgme_key_t key) |
92 |
{ |
{ |
97 |
DWORD imglen = 0; |
DWORD imglen = 0; |
98 |
int pos=0; |
int pos=0; |
99 |
|
|
100 |
img = (const byte *)gpgme_key_get_string_attr( key, GPGME_ATTR_PHOTO, |
img = (const byte *)gpgme_key_get_string_attr (key, GPGME_ATTR_PHOTO, |
101 |
(void **)&imglen, 0 ); |
(void **)&imglen, 0); |
102 |
if (!img || !imglen) |
if (!img || !imglen) |
103 |
return -1; |
return -1; |
104 |
FILE * f = fopen ("temp.jpg", "wb"); |
FILE *f = fopen (PHOTO_TMPNAME, "wb"); |
105 |
if (f) { |
if (f) { |
106 |
for (pos = 0; img[pos] != 0x10; pos++) |
for (pos = 0; img[pos] != 0x10; pos++) |
107 |
; |
; |
115 |
GetWindowRect (h, &r); |
GetWindowRect (h, &r); |
116 |
p.x = r.left + 5; |
p.x = r.left + 5; |
117 |
p.y = r.top - 2; |
p.y = r.top - 2; |
118 |
memset (&p, 0, sizeof p); |
memset (&p, 0, sizeof (p)); |
119 |
PTD_jpg_show (h, &p, "temp.jpg"); |
PTD_jpg_show (h, &p, PHOTO_TMPNAME); |
120 |
unlink ("temp.jpg"); |
unlink (PHOTO_TMPNAME); |
121 |
|
|
122 |
return 0; |
return 0; |
123 |
} |
} |
124 |
|
|
125 |
|
|
126 |
|
static const char* |
127 |
|
get_validity (gpgme_key_t key) |
128 |
|
{ |
129 |
|
int val; |
130 |
|
val = gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_EXPIRED, NULL, 0); |
131 |
|
if (val) |
132 |
|
return "Expired"; |
133 |
|
val = gpgme_key_get_ulong_attr( key, GPGME_ATTR_KEY_REVOKED, NULL, 0 ); |
134 |
|
if (val) |
135 |
|
return "Revoked"; |
136 |
|
val = gpgme_key_get_ulong_attr (key, GPGME_ATTR_VALIDITY, NULL, 0); |
137 |
|
return gpgme_key_expand_attr (GPGME_ATTR_VALIDITY, val); |
138 |
|
} |
139 |
|
|
140 |
|
|
141 |
BOOL CALLBACK |
BOOL CALLBACK |
142 |
keyprops_dlg_proc( HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam ) |
keyprops_dlg_proc( HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam ) |
143 |
{ |
{ |
152 |
const char * sym_prefs; |
const char * sym_prefs; |
153 |
char info[2048], dummy_symprefs[] = {0x01, 0x00}; |
char info[2048], dummy_symprefs[] = {0x01, 0x00}; |
154 |
u32 created, expires; |
u32 created, expires; |
155 |
int valid, ot, cancel = 0; |
int ot, cancel = 0; |
156 |
int rc; |
int rc; |
157 |
|
|
158 |
switch (msg) { |
switch (msg) { |
177 |
expires = gpgme_key_get_ulong_attr( key, GPGME_ATTR_EXPIRES, NULL, 0 ); |
expires = gpgme_key_get_ulong_attr( key, GPGME_ATTR_EXPIRES, NULL, 0 ); |
178 |
sym_prefs = gpgme_key_get_string_attr( key, GPGME_ATTR_KEY_SYMPREFS, NULL, 0 ); |
sym_prefs = gpgme_key_get_string_attr( key, GPGME_ATTR_KEY_SYMPREFS, NULL, 0 ); |
179 |
if (!sym_prefs) |
if (!sym_prefs) |
180 |
sym_prefs = dummy_symprefs; |
sym_prefs = dummy_symprefs; |
|
valid = gpgme_key_get_ulong_attr (key, GPGME_ATTR_VALIDITY, NULL, 0); |
|
181 |
_snprintf (info, sizeof info -1, |
_snprintf (info, sizeof info -1, |
182 |
"Type: %s\r\n" |
"Type: %s\r\n" |
183 |
"Key ID: %s\r\n" |
"Key ID: %s\r\n" |
193 |
get_key_size( key, 0 ), |
get_key_size( key, 0 ), |
194 |
get_key_created( created ), |
get_key_created( created ), |
195 |
get_key_expire_date( expires ), |
get_key_expire_date( expires ), |
196 |
gpgme_key_expand_attr( GPGME_ATTR_VALIDITY, valid ), |
get_validity (key), |
197 |
gpgme_key_expand_attr( GPGME_ATTR_KEY_SYMPREFS, *sym_prefs ) ); |
gpgme_key_expand_attr( GPGME_ATTR_KEY_SYMPREFS, *sym_prefs ) ); |
198 |
SetDlgItemText( dlg, IDC_KEYPROPS_INFO, info ); |
SetDlgItemText( dlg, IDC_KEYPROPS_INFO, info ); |
199 |
SetDlgItemText( dlg, IDC_KEYPROPS_FPR, get_key_fpr( key ) ); |
SetDlgItemText( dlg, IDC_KEYPROPS_FPR, get_key_fpr( key ) ); |