40 |
#include "wptCardEdit.h" |
#include "wptCardEdit.h" |
41 |
#include "wptCrypto.h" |
#include "wptCrypto.h" |
42 |
|
|
43 |
#define MIN_GPG_VER "1.4.3" /* Minimal GPG version. */ |
#define MIN_GPG_VER "1.4.2" /* Minimal GPG version. */ |
44 |
#define MIN_GPGME_VER "1.2.0" /* Minimal GPGME version. */ |
#define MIN_GPGME_VER "1.2.0" /* Minimal GPGME version. */ |
|
#define MIN_PTD_VER "0.8.1" /* Minimal PTD version. */ |
|
45 |
|
|
46 |
|
|
47 |
HINSTANCE glob_hinst; /* global instance for the dialogs */ |
HINSTANCE glob_hinst; /* global instance for the dialogs */ |
171 |
static int |
static int |
172 |
check_crypto_engine (void) |
check_crypto_engine (void) |
173 |
{ |
{ |
174 |
int ma=1, mi=4, pa=3; /* GPG 1.4.3 */ |
int ma=1, mi=4, pa=2; /* GPG 1.4.2 */ |
175 |
int rc; |
int rc; |
176 |
|
|
177 |
rc = check_gnupg_engine (&ma, &mi, &pa); |
rc = check_gnupg_engine (&ma, &mi, &pa); |
187 |
ma, mi, pa); |
ma, mi, pa); |
188 |
return rc; |
return rc; |
189 |
} |
} |
190 |
/* We enable smartcard support for GPG: 1.9 or >= 1.4 */ |
/* We enable smartcard support for GPG: >= 2 or >= 1.4.3 */ |
191 |
if ((ma == 1 && mi >= 4) || ma > 1) |
if (ma > 1 || pa >= 3) |
192 |
scard_support = 1; |
scard_support = 1; |
193 |
|
|
194 |
gpgver[0] = ma; |
gpgver[0] = ma; |
255 |
|
|
256 |
glob_hinst = hinst; |
glob_hinst = hinst; |
257 |
|
|
258 |
|
if (cmdline && stristr (cmdline, "--stop")) { |
259 |
|
hwnd = FindWindow ("WinPT", "WinPT"); |
260 |
|
if (hwnd != NULL) |
261 |
|
PostMessage (hwnd, WM_DESTROY, 0, 0); |
262 |
|
return 0; |
263 |
|
} |
264 |
|
|
265 |
#ifdef _DEBUG |
#ifdef _DEBUG |
266 |
gpg_set_debug_mode (1); |
gpg_set_debug_mode (1); |
267 |
debug = 1; |
debug = 1; |
397 |
|
|
398 |
if (cmdline && stristr (cmdline, "--wipe-freespace")) { |
if (cmdline && stristr (cmdline, "--wipe-freespace")) { |
399 |
dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_SPACE_SECDEL, |
dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_SPACE_SECDEL, |
400 |
GetDesktopWindow(), space_wipefrees_dlg_proc, NULL, |
GetDesktopWindow(), space_wipefrees_dlg_proc, 0, |
401 |
_("Wipe Free Space"), IDS_WINPT_SPACE_SECDEL); |
_("Wipe Free Space"), IDS_WINPT_SPACE_SECDEL); |
402 |
free_gnupg_table (); |
free_gnupg_table (); |
403 |
return 0; |
return 0; |
407 |
|
|
408 |
if (cmdline && (stristr (cmdline, "--keymanager") |
if (cmdline && (stristr (cmdline, "--keymanager") |
409 |
|| stristr (cmdline, "--cardmanager"))) { |
|| stristr (cmdline, "--cardmanager"))) { |
410 |
|
/* If an instance of WinPT is running, just send the command |
411 |
|
to open the key manager. Otherwise start a new instance. |
412 |
|
*/ |
413 |
|
HWND tray = FindWindow ("WinPT", "WinPT"); |
414 |
|
if (tray != NULL) { |
415 |
|
PostMessage (tray, WM_COMMAND, ID_WINPT_KEY, 0); |
416 |
|
free_gnupg_table (); |
417 |
|
return 0; |
418 |
|
} |
419 |
update_keycache (GetDesktopWindow ()); |
update_keycache (GetDesktopWindow ()); |
420 |
if (stristr (cmdline, "keymanager")) |
if (stristr (cmdline, "keymanager")) |
421 |
dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_KEYMISC, |
dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_KEYMISC, |
422 |
GetDesktopWindow(), keymanager_dlg_proc, NULL, |
GetDesktopWindow(), keymanager_dlg_proc, 0, |
423 |
_("Key Manager"), IDS_WINPT_KEYMISC); |
_("Key Manager"), IDS_WINPT_KEYMISC); |
424 |
else { |
else { |
425 |
gpg_card_t crd = gpg_card_load (); |
gpg_card_t crd = gpg_card_load (); |
430 |
IDS_WINPT_CARD_EDIT); |
IDS_WINPT_CARD_EDIT); |
431 |
gpg_card_release (crd); |
gpg_card_release (crd); |
432 |
} |
} |
433 |
|
/* |
434 |
keycache_release (0); |
keycache_release (0); |
435 |
free_gnupg_table (); |
free_gnupg_table (); |
436 |
return 0; |
return 0; |
437 |
|
*/ |
438 |
} |
} |
439 |
|
|
440 |
/* If we found another WinPT instance, just quit to avoid it |
/* If we found another WinPT instance, just quit to avoid it |