From 86dc27dcb831165c1c0140501b870c8092caa558 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Fri, 28 Aug 2015 00:14:08 +0200 Subject: Windows: Treat the PIM like a password and make it visible when "Display password" is checked. --- src/Common/Common.rc | 2 +- src/Common/Language.xml | 1 + src/ExpandVolume/WinMain.cpp | 4 ++-- src/Format/Format.rc | 11 ++++++----- src/Format/Resource.h | 3 ++- src/Format/Tcformat.c | 8 +++++++- src/Mount/Mount.c | 9 +++++---- src/Mount/Mount.rc | 6 +++--- 8 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/Common/Common.rc b/src/Common/Common.rc index 652b407f..1a2758f6 100644 --- a/src/Common/Common.rc +++ b/src/Common/Common.rc @@ -81,7 +81,7 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,86,252,10 EDITTEXT IDC_PASSWORD_PROT_HIDVOL,112,104,151,14,ES_PASSWORD | ES_AUTOHSCROLL COMBOBOX IDC_PKCS5_PRF_ID,112,125,91,90,CBS_DROPDOWNLIST | WS_TABSTOP - EDITTEXT IDC_PIM,112,145,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE + EDITTEXT IDC_PIM,112,145,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,158,148,112,8,NOT WS_VISIBLE CONTROL "&Display password",IDC_SHOW_PASSWORD_MO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,165,90,10 CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE_HIDVOL_PROT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,178,90,10 diff --git a/src/Common/Language.xml b/src/Common/Language.xml index c47b1b84..431d9745 100644 --- a/src/Common/Language.xml +++ b/src/Common/Language.xml @@ -62,6 +62,7 @@ Quick Format &Display password &Display password + &Display PIM Single-boot Standard VeraCrypt volume Hi&dden diff --git a/src/ExpandVolume/WinMain.cpp b/src/ExpandVolume/WinMain.cpp index 6f114dcf..d07bc11e 100644 --- a/src/ExpandVolume/WinMain.cpp +++ b/src/ExpandVolume/WinMain.cpp @@ -539,7 +539,7 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA // simulate hiding password SetCheckBox (hwndDlg, IDC_SHOW_PASSWORD, FALSE); - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, IDC_PIM); } SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, FALSE); @@ -617,7 +617,7 @@ BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA if (lw == IDC_SHOW_PASSWORD) { - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, IDC_PIM); return 1; } diff --git a/src/Format/Format.rc b/src/Format/Format.rc index 66f4ac81..e46292e2 100644 --- a/src/Format/Format.rc +++ b/src/Format/Format.rc @@ -225,7 +225,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN EDITTEXT IDC_PASSWORD_DIRECT,50,2,149,14,ES_PASSWORD | ES_AUTOHSCROLL COMBOBOX IDC_PKCS5_PRF_ID,50,17,91,90,CBS_DROPDOWNLIST | WS_TABSTOP - EDITTEXT IDC_PIM,50,32,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE + EDITTEXT IDC_PIM,50,32,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,96,34,127,8,NOT WS_VISIBLE CONTROL "&Display password",IDC_SHOW_PASSWORD_SINGLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,50,46,84,11,WS_EX_TRANSPARENT CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,50,57,82,11 @@ -437,11 +437,12 @@ IDD_PIM_PAGE_DLG DIALOGEX 0, 0, 226, 172 STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - EDITTEXT IDC_PIM,53,8,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER - LTEXT "",IDC_BOX_HELP,0,28,225,130 - RTEXT "Volume PIM:",IDT_PIM,1,11,50,8 - LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,97,11,126,8 + EDITTEXT IDC_PIM,53,0,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER + LTEXT "",IDC_BOX_HELP,0,32,225,126 + RTEXT "Volume PIM:",IDT_PIM,1,3,50,8 + LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,97,3,126,8 LTEXT "Information on PIM",IDC_LINK_PIM_INFO,0,161,213,8,SS_NOTIFY + CONTROL "Display PIM",IDC_SHOW_PIM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,17,150,10 END diff --git a/src/Format/Resource.h b/src/Format/Resource.h index 3b717e84..e7048d66 100644 --- a/src/Format/Resource.h +++ b/src/Format/Resource.h @@ -142,6 +142,7 @@ #define IDC_DRIVE_LETTER_LIST 1103 #define IDT_DRIVE_LETTER 1104 #define IDC_LINK_PIM_INFO 1105 +#define IDC_SHOW_PIM 1106 // Next default values for new objects // @@ -150,7 +151,7 @@ #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 134 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1106 +#define _APS_NEXT_CONTROL_VALUE 1107 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c index 88db8abf..2ebc70ca 100644 --- a/src/Format/Tcformat.c +++ b/src/Format/Tcformat.c @@ -5413,6 +5413,12 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa return 1; } + if (lw == IDC_SHOW_PIM && nCurPageNo == PIM_PAGE) + { + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PIM, IDC_PIM, 0); + return 1; + } + if (lw == IDC_PIM_ENABLE) { PimEnable = GetCheckBox (hwndDlg, IDC_PIM_ENABLE); @@ -5500,7 +5506,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa if (lw == IDC_SHOW_PASSWORD_SINGLE) { - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_SINGLE, IDC_PASSWORD_DIRECT, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_SINGLE, IDC_PASSWORD_DIRECT, IDC_PIM); return 1; } } diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index 8bca86b8..98578084 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -2314,13 +2314,14 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR if (lw == IDC_SHOW_PASSWORD_CHPWD_ORI) { - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_CHPWD_ORI, IDC_OLD_PASSWORD, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_CHPWD_ORI, IDC_OLD_PASSWORD, IDC_OLD_PIM); return 1; } if (lw == IDC_SHOW_PASSWORD_CHPWD_NEW) { HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_CHPWD_NEW, IDC_PASSWORD, IDC_VERIFY); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_CHPWD_NEW, IDC_PIM, 0); return 1; } @@ -2652,7 +2653,7 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa // simulate hiding password SetCheckBox (hwndDlg, IDC_SHOW_PASSWORD, FALSE); - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, IDC_PIM); } SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, FALSE); @@ -2735,7 +2736,7 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa if (lw == IDC_SHOW_PASSWORD) { - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD, IDC_PASSWORD, IDC_PIM); return 1; } @@ -3260,7 +3261,7 @@ BOOL CALLBACK MountOptionsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM if (lw == IDC_SHOW_PASSWORD_MO) { - HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_MO, IDC_PASSWORD_PROT_HIDVOL, 0); + HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_MO, IDC_PASSWORD_PROT_HIDVOL, IDC_PIM); return 1; } diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc index eb665d47..fc6ab3b1 100644 --- a/src/Mount/Mount.rc +++ b/src/Mount/Mount.rc @@ -114,14 +114,14 @@ BEGIN EDITTEXT IDC_OLD_PASSWORD,89,14,162,13,ES_PASSWORD | ES_AUTOHSCROLL COMBOBOX IDC_PKCS5_OLD_PRF_ID,89,33,85,90,CBS_DROPDOWNLIST | WS_TABSTOP CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,179,35,78,10 - EDITTEXT IDC_OLD_PIM,89,51,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE + EDITTEXT IDC_OLD_PIM,89,51,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE CONTROL "Use PIM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,59,97,10 CONTROL "Use keyfiles",IDC_ENABLE_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,72,98,10 PUSHBUTTON "Keyfiles...",IDC_KEYFILES,192,70,59,14 CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_ORI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,85,138,10,WS_EX_TRANSPARENT EDITTEXT IDC_PASSWORD,89,121,162,13,ES_PASSWORD | ES_AUTOHSCROLL EDITTEXT IDC_VERIFY,89,137,162,13,ES_PASSWORD | ES_AUTOHSCROLL - EDITTEXT IDC_PIM,89,154,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE + EDITTEXT IDC_PIM,89,154,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE CONTROL "Use PIM",IDC_NEW_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,161,97,10 CONTROL "Use keyfiles",IDC_ENABLE_NEW_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,172,99,11 PUSHBUTTON "Keyfiles...",IDC_NEW_KEYFILES,192,170,59,14 @@ -182,7 +182,7 @@ BEGIN EDITTEXT IDC_PASSWORD,69,8,166,14,ES_PASSWORD | ES_AUTOHSCROLL COMBOBOX IDC_PKCS5_PRF_ID,69,26,86,90,CBS_DROPDOWNLIST | WS_TABSTOP CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,28,76,10 - EDITTEXT IDC_PIM,69,43,42,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE + EDITTEXT IDC_PIM,69,43,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE CONTROL "Use PIM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,48,97,10 CONTROL "Cache passwords and keyfil&es in memory",IDC_CACHE, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,61,153,10 -- cgit v1.2.3