1 |
/* wptVerifyList.cpp - Listview for verifying signatures |
/* wptVerifyList.cpp - Listview for verifying signatures |
2 |
* Copyright (C) 2001, 2002, 2003, 2005 Timo Schulz |
* Copyright (C) 2001, 2002, 2003, 2005 Timo Schulz |
3 |
|
* Copyright (C) 2005 g10 Code GmbH |
4 |
* |
* |
5 |
* This file is part of WinPT. |
* This file is part of WinPT. |
6 |
* |
* |
152 |
{ |
{ |
153 |
gpgme_key_t key = NULL; |
gpgme_key_t key = NULL; |
154 |
const char * attr; |
const char * attr; |
155 |
u32 key_attr, t; |
u32 key_attr; |
156 |
char keyid[32+1]; |
char keyid[32+1]; |
157 |
char * uid = NULL; |
char * uid = NULL; |
158 |
|
|
159 |
if( listview_add_item( lv, " " ) ) |
if (listview_add_item (lv, " ")) |
160 |
return WPTERR_GENERAL; |
return WPTERR_GENERAL; |
161 |
|
|
162 |
get_pubkey (sig->fpr, &key); |
get_pubkey (sig->fpr, &key); |
163 |
|
|
164 |
attr = get_gpg_sigstat (sig->summary); |
attr = get_gpg_sigstat (sig->summary); |
165 |
if( attr ) |
if( attr ) |
166 |
listview_add_sub_item( lv, 0, 0, (char *)attr ); |
listview_add_sub_item (lv, 0, 0, (char *)attr); |
167 |
|
|
168 |
t = sig->timestamp; |
attr = strtimestamp (sig->timestamp); |
169 |
attr = strtimestamp (t); |
listview_add_sub_item (lv, 0, 1, (char *)attr); |
|
if( attr ) |
|
|
listview_add_sub_item (lv, 0, 1, (char *)attr); |
|
170 |
|
|
171 |
attr = _("Unknown"); |
attr = _("Unknown"); |
172 |
if (key) { |
if (key) { |
173 |
key_attr = key->uids->validity; |
key_attr = key->uids->validity; |
174 |
attr = get_key_trust2 (NULL, key_attr, 0, 0); |
attr = get_key_trust2 (NULL, key_attr, 0, 0); |
175 |
} |
} |
176 |
listview_add_sub_item( lv, 0, 2, (char *)attr ); |
listview_add_sub_item (lv, 0, 2, (char *)attr); |
177 |
|
|
178 |
attr = sig->fpr; |
attr = sig->fpr; |
179 |
if (!attr || strlen (attr) < 8) |
if (!attr || strlen (attr) < 8) |
180 |
listview_add_sub_item (lv, 0, 3, "0xDEADBEEF"); |
listview_add_sub_item (lv, 0, 3, "????????"); |
181 |
else { |
else { |
182 |
if (strlen (attr) == 40) |
if (strlen (attr) == 40) |
183 |
attr += 32; |
attr += 32; |
196 |
uid = utf8_to_wincp (attr, strlen (attr)); |
uid = utf8_to_wincp (attr, strlen (attr)); |
197 |
if (uid) { |
if (uid) { |
198 |
listview_add_sub_item( lv, 0, 4, (char *)uid ); |
listview_add_sub_item( lv, 0, 4, (char *)uid ); |
199 |
free( uid ); |
free (uid); |
200 |
} |
} |
201 |
} |
} |
202 |
|
|
207 |
/* Add the given file signature in @log to the verify control @lv. |
/* Add the given file signature in @log to the verify control @lv. |
208 |
Return value: 0 on success. */ |
Return value: 0 on success. */ |
209 |
int |
int |
210 |
verlist_add_sig_log (listview_ctrl_t lv, siglog_context_t log) |
verlist_add_sig_log (listview_ctrl_t lv, file_sig_ctx_t log) |
211 |
{ |
{ |
212 |
gpgme_signature_t sig = log->sig; |
gpgme_signature_t sig = log->sig; |
213 |
gpgme_key_t key = NULL; |
gpgme_key_t key = NULL; |
214 |
const char *attr; |
const char *attr; |
215 |
char t[64], *name; |
char t[64], *name; |
216 |
|
|
217 |
if( listview_add_item( lv, "" ) ) |
if (listview_add_item (lv, "")) |
218 |
return WPTERR_GENERAL; |
return WPTERR_GENERAL; |
219 |
|
|
220 |
get_pubkey (sig->fpr, &key); |
get_pubkey (sig->fpr, &key); |
221 |
|
|
222 |
name = extract_filename (log->file); |
name = extract_filename (log->file); |
223 |
if( name ) |
if (name) |
224 |
listview_add_sub_item (lv, 0, 0, name); |
listview_add_sub_item (lv, 0, 0, name); |
225 |
|
else |
226 |
|
listview_add_sub_item (lv, 0, 0, log->file); |
227 |
free_if_alloc (name); |
free_if_alloc (name); |
228 |
|
|
229 |
attr = get_gpg_sigstat (sig->summary); |
attr = get_gpg_sigstat (sig->summary); |
230 |
if( attr ) |
if (attr) |
231 |
listview_add_sub_item( lv, 0, 1, attr ); |
listview_add_sub_item (lv, 0, 1, attr); |
232 |
|
|
233 |
attr = strtimestamp( sig->timestamp ); |
if (sig->timestamp > 0) { |
234 |
if( attr ) |
attr = strtimestamp (sig->timestamp); |
235 |
listview_add_sub_item( lv, 0, 2, attr ); |
listview_add_sub_item (lv, 0, 2, attr); |
236 |
|
} |
237 |
|
else |
238 |
|
listview_add_sub_item (lv, 0, 2, "No time"); |
239 |
|
|
240 |
attr = _("Unknown"); |
attr = _("Unknown"); |
241 |
if (key) |
if (key) |
242 |
attr = get_key_trust2 (NULL, key->owner_trust, 0, 0); |
attr = get_key_trust2 (NULL, key->uids->validity, 0, 0); |
243 |
listview_add_sub_item( lv, 0, 3, attr ); |
listview_add_sub_item (lv, 0, 3, attr); |
244 |
|
|
245 |
attr = sig->fpr; |
attr = sig->fpr; |
246 |
if( !log->use_uid && strlen( attr ) == 40 ) { |
if (!log->use_uid && strlen (attr) == 40) { |
247 |
_snprintf( t, sizeof t-1, "0x%s", attr + 32 ); |
_snprintf (t, sizeof (t)-1, "0x%s", attr + 32); |
248 |
listview_add_sub_item( lv, 0, 4, t ); |
listview_add_sub_item (lv, 0, 4, t); |
249 |
} |
} |
250 |
else if( !log->use_uid && strlen( attr ) == 32 ) { |
else if( !log->use_uid && strlen( attr ) == 32 ) { |
251 |
_snprintf( t, sizeof t-1, "0x%s", attr + 24 ); |
_snprintf (t, sizeof (t)-1, "0x%s", attr + 24); |
252 |
listview_add_sub_item( lv, 0, 4, t ); |
listview_add_sub_item (lv, 0, 4, t); |
253 |
} |
} |
254 |
else if( log->user_id ) { |
else if (log->user_id) { |
255 |
char * p = utf8_to_wincp (log->user_id, strlen (log->user_id)); |
char *p = utf8_to_wincp (log->user_id, strlen (log->user_id)); |
256 |
if( p ) { |
if (p) { |
257 |
listview_add_sub_item( lv, 0, 4, p ); |
listview_add_sub_item (lv, 0, 4, p); |
258 |
free( p ); |
free (p); |
259 |
} |
} |
260 |
} |
} |
261 |
return 0; |
return 0; |
262 |
} |
} |
|
|
|