58 |
|
|
59 |
|
|
60 |
/* Load the key cache and rebuild the signature cache. */ |
/* Load the key cache and rebuild the signature cache. */ |
61 |
void |
int |
62 |
update_keycache (HWND hwnd) |
update_keycache (HWND hwnd) |
63 |
{ |
{ |
64 |
|
int err; |
65 |
|
|
66 |
refresh_cache_s rcs = {0}; |
refresh_cache_s rcs = {0}; |
67 |
rcs.kr_reload = 0; |
rcs.kr_reload = 0; |
68 |
rcs.kr_update = 1; |
rcs.kr_update = 1; |
69 |
rcs.tr_update = 1; |
rcs.tr_update = 1; |
70 |
DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd, |
err = DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd, |
71 |
keycache_dlg_proc, (LPARAM)&rcs); |
keycache_dlg_proc, (LPARAM)&rcs); |
72 |
/* XXX: the dialog return 0 when an error occurs. |
if (err) { |
73 |
in this case figure out if the gpg env is OK |
char *cfg = get_gnupg_config (); |
74 |
and supress dialogs to configure gpg. */ |
if (cfg && check_gnupg_options (cfg, 0) == WPTERR_FILE_EXIST) |
75 |
|
msg_box (NULL, _("The gpg.conf contains at least one argument which points to a non-existing file."), "WinPT", MB_ERR); |
76 |
|
free_if_alloc (cfg); |
77 |
|
return -1; |
78 |
|
} |
79 |
|
return 0; |
80 |
} |
} |
81 |
|
|
82 |
|
|
737 |
if (!check_crypto_engine ()) { |
if (!check_crypto_engine ()) { |
738 |
DestroyWindow (hwnd); |
DestroyWindow (hwnd); |
739 |
free_gnupg_table (); |
free_gnupg_table (); |
740 |
|
keycache_release (1); |
741 |
return 0; |
return 0; |
742 |
} |
} |
743 |
if (!is_gpg4win_installed ()) { |
if (!is_gpg4win_installed ()) { |
747 |
} |
} |
748 |
else { |
else { |
749 |
gpg_keycache_t c, sec_c; |
gpg_keycache_t c, sec_c; |
750 |
update_keycache (hwnd); |
if (update_keycache (hwnd)) { |
751 |
|
DestroyWindow (hwnd); |
752 |
|
free_gnupg_table (); |
753 |
|
keycache_release (1); |
754 |
|
return 0; |
755 |
|
} |
756 |
c = keycache_get_ctx (1); |
c = keycache_get_ctx (1); |
757 |
if (!c || !gpg_keycache_get_size (c)) { |
if (!gpg_keycache_get_size (c)) { |
|
gnupg_display_error (); |
|
758 |
msg_box (hwnd, _("The keycache was not initialized or is empty.\n" |
msg_box (hwnd, _("The keycache was not initialized or is empty.\n" |
759 |
"Please check your GPG config (keyrings, pathes...)"), |
"Please check your GPG config (keyrings, pathes...)"), |
760 |
_("WinPT Error"), MB_ERR); |
_("WinPT Error"), MB_ERR); |
769 |
else { |
else { |
770 |
DestroyWindow (hwnd); |
DestroyWindow (hwnd); |
771 |
free_gnupg_table (); |
free_gnupg_table (); |
772 |
|
keycache_release (1); |
773 |
return 0; |
return 0; |
774 |
} |
} |
775 |
} |
} |