mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-06-09 22:36:59 -05:00
Windows: support loading TrueCrypt volumes. Implement converting TrueCrypt volumes to VeraCrypt using the change password functionality.
This commit is contained in:
+15
-4
@@ -106,7 +106,7 @@ public:
|
||||
CW2A volumePathA(volumePath);
|
||||
MainDlg = (HWND) hWnd;
|
||||
if (volumePathA.m_psz)
|
||||
return ::ChangePwd (volumePathA.m_psz, oldPassword, 0, newPassword, pkcs5, wipePassCount,(HWND) hWnd);
|
||||
return ::ChangePwd (volumePathA.m_psz, oldPassword, 0, FALSE, newPassword, pkcs5, wipePassCount, (HWND) hWnd);
|
||||
else
|
||||
return ERR_OUTOFMEMORY;
|
||||
}
|
||||
@@ -157,7 +157,18 @@ public:
|
||||
CW2A volumePathA(volumePath);
|
||||
MainDlg = (HWND) hWnd;
|
||||
if (volumePathA.m_psz)
|
||||
return ::ChangePwd (volumePathA.m_psz, oldPassword, old_pkcs5, newPassword, pkcs5, wipePassCount,(HWND) hWnd);
|
||||
return ::ChangePwd (volumePathA.m_psz, oldPassword, old_pkcs5, FALSE, newPassword, pkcs5, wipePassCount, (HWND) hWnd);
|
||||
else
|
||||
return ERR_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
virtual int STDMETHODCALLTYPE ChangePasswordEx2 (BSTR volumePath, Password *oldPassword, int old_pkcs5, BOOL truecryptMode, Password *newPassword, int pkcs5, int wipePassCount, LONG_PTR hWnd)
|
||||
{
|
||||
USES_CONVERSION;
|
||||
CW2A volumePathA(volumePath);
|
||||
MainDlg = (HWND) hWnd;
|
||||
if (volumePathA.m_psz)
|
||||
return ::ChangePwd (volumePathA.m_psz, oldPassword, old_pkcs5, truecryptMode, newPassword, pkcs5, wipePassCount, (HWND) hWnd);
|
||||
else
|
||||
return ERR_OUTOFMEMORY;
|
||||
}
|
||||
@@ -272,7 +283,7 @@ extern "C" int UacRestoreVolumeHeader (HWND hwndDlg, char *lpszVolume)
|
||||
}
|
||||
|
||||
|
||||
extern "C" int UacChangePwd (char *lpszVolume, Password *oldPassword, int old_pkcs5, Password *newPassword, int pkcs5, int wipePassCount, HWND hwndDlg)
|
||||
extern "C" int UacChangePwd (char *lpszVolume, Password *oldPassword, int old_pkcs5, BOOL truecryptMode, Password *newPassword, int pkcs5, int wipePassCount, HWND hwndDlg)
|
||||
{
|
||||
CComPtr<ITrueCryptMainCom> tc;
|
||||
int r;
|
||||
@@ -280,7 +291,7 @@ extern "C" int UacChangePwd (char *lpszVolume, Password *oldPassword, int old_pk
|
||||
if (ComGetInstance (hwndDlg, &tc))
|
||||
{
|
||||
WaitCursor ();
|
||||
r = tc->ChangePasswordEx (CComBSTR (lpszVolume), oldPassword, old_pkcs5, newPassword, pkcs5, wipePassCount, (LONG_PTR) hwndDlg);
|
||||
r = tc->ChangePasswordEx2 (CComBSTR (lpszVolume), oldPassword, old_pkcs5, truecryptMode, newPassword, pkcs5, wipePassCount, (LONG_PTR) hwndDlg);
|
||||
NormalCursor ();
|
||||
}
|
||||
else
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ BOOL ComServerMain ();
|
||||
void UacAnalyzeKernelMiniDump (HWND hwndDlg);
|
||||
int UacBackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, char *lpszVolume);
|
||||
int UacRestoreVolumeHeader (HWND hwndDlg, char *lpszVolume);
|
||||
int UacChangePwd (char *lpszVolume, Password *oldPassword, int old_pkcs5, Password *newPassword, int pkcs5, int wipePassCount, HWND hwndDlg);
|
||||
int UacChangePwd (char *lpszVolume, Password *oldPassword, int old_pkcs5, BOOL truecryptMode, Password *newPassword, int pkcs5, int wipePassCount, HWND hwndDlg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import "..\Common\Password.h";
|
||||
[
|
||||
uuid(9ACF6176-5FC4-4690-A025-B3306A50EB6A),
|
||||
helpstring("VeraCrypt Main UAC Support Library"),
|
||||
version(2.5) // Update ComSetup.cpp when changing version number
|
||||
version(2.6) // Update ComSetup.cpp when changing version number
|
||||
]
|
||||
library TrueCryptMainCom
|
||||
{
|
||||
@@ -38,6 +38,7 @@ library TrueCryptMainCom
|
||||
DWORD SetDriverServiceStartType (DWORD startType);
|
||||
DWORD WriteLocalMachineRegistryDwordValue (BSTR keyPath, BSTR valueName, DWORD value);
|
||||
int ChangePasswordEx (BSTR volumePath, Password *oldPassword, int old_pkcs5, Password *newPassword, int pkcs5, int wipePassCount, LONG_PTR hWnd);
|
||||
int ChangePasswordEx2 (BSTR volumePath, Password *oldPassword, int old_pkcs5, BOOL truecryptMode, Password *newPassword, int pkcs5, int wipePassCount, LONG_PTR hWnd);
|
||||
};
|
||||
|
||||
[
|
||||
|
||||
+103
-27
@@ -124,6 +124,8 @@ Password VolumePassword; /* Password used for mounting volumes */
|
||||
Password CmdVolumePassword; /* Password passed from command line */
|
||||
int VolumePkcs5 = 0;
|
||||
int CmdVolumePkcs5 = 0;
|
||||
BOOL VolumeTrueCryptMode = FALSE;
|
||||
BOOL CmdVolumeTrueCryptMode = FALSE;
|
||||
BOOL CmdVolumePasswordValid = FALSE;
|
||||
MountOptions CmdMountOptions;
|
||||
BOOL CmdMountOptionsValid = FALSE;
|
||||
@@ -217,6 +219,8 @@ static void localcleanup (void)
|
||||
burn (&CmdVolumePassword, sizeof (CmdVolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&CmdVolumePkcs5, sizeof (CmdVolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&CmdVolumeTrueCryptMode, sizeof (CmdVolumeTrueCryptMode));
|
||||
burn (&mountOptions, sizeof (mountOptions));
|
||||
burn (&defaultMountOptions, sizeof (defaultMountOptions));
|
||||
burn (szFileName, sizeof(szFileName));
|
||||
@@ -1446,6 +1450,7 @@ typedef struct
|
||||
Password *newPassword;
|
||||
int pkcs5;
|
||||
int wipePassCount;
|
||||
BOOL truecryptMode;
|
||||
int* pnStatus;
|
||||
} ChangePwdThreadParam;
|
||||
|
||||
@@ -1482,14 +1487,14 @@ void CALLBACK ChangePwdWaitThreadProc(void* pArg, HWND hwndDlg)
|
||||
{
|
||||
// Non-system
|
||||
|
||||
*pThreadParam->pnStatus = ChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->wipePassCount, hwndDlg);
|
||||
*pThreadParam->pnStatus = ChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->truecryptMode, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->wipePassCount, hwndDlg);
|
||||
|
||||
if (*pThreadParam->pnStatus == ERR_OS_ERROR
|
||||
&& GetLastError () == ERROR_ACCESS_DENIED
|
||||
&& IsUacSupported ()
|
||||
&& IsVolumeDeviceHosted (szFileName))
|
||||
{
|
||||
*pThreadParam->pnStatus = UacChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->wipePassCount, hwndDlg);
|
||||
*pThreadParam->pnStatus = UacChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->truecryptMode, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->wipePassCount, hwndDlg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1653,6 +1658,10 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
|
||||
if (bSysEncPwdChangeDlgMode)
|
||||
{
|
||||
/* No support for changing the password of TrueCrypt system partition */
|
||||
SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
|
||||
|
||||
ToBootPwdField (hwndDlg, IDC_PASSWORD);
|
||||
ToBootPwdField (hwndDlg, IDC_VERIFY);
|
||||
ToBootPwdField (hwndDlg, IDC_OLD_PASSWORD);
|
||||
@@ -1941,6 +1950,13 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_OLD_PRF_ID), CB_GETCURSEL, 0, 0), 0);
|
||||
int pkcs5 = SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA,
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
|
||||
BOOL truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
|
||||
|
||||
if (truecryptMode && (old_pkcs5 == SHA256))
|
||||
{
|
||||
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!CheckPasswordCharEncoding (GetDlgItem (hwndDlg, IDC_PASSWORD), NULL))
|
||||
{
|
||||
@@ -1999,6 +2015,7 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
changePwdParam.pkcs5 = pkcs5;
|
||||
changePwdParam.wipePassCount = GetWipePassCount(headerWiperMode);
|
||||
changePwdParam.pnStatus = &nStatus;
|
||||
changePwdParam.truecryptMode = truecryptMode;
|
||||
|
||||
ShowWaitDialog(hwndDlg, TRUE, ChangePwdWaitThreadProc, &changePwdParam);
|
||||
|
||||
@@ -2048,6 +2065,7 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
WORD lw = LOWORD (wParam);
|
||||
static Password *szXPwd;
|
||||
static int *pkcs5;
|
||||
static BOOL* truecryptMode;
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
@@ -2056,6 +2074,7 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
int i, nIndex;
|
||||
szXPwd = ((PasswordDlgParam *) lParam) -> password;
|
||||
pkcs5 = ((PasswordDlgParam *) lParam) -> pkcs5;
|
||||
truecryptMode = ((PasswordDlgParam *) lParam) -> truecryptMode;
|
||||
LocalizeDialog (hwndDlg, "IDD_PASSWORD_DLG");
|
||||
DragAcceptFiles (hwndDlg, TRUE);
|
||||
|
||||
@@ -2115,6 +2134,9 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
{
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_CACHE), FALSE);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_MOUNT_OPTIONS), FALSE);
|
||||
/* Disable TrueCrypt mode option in case of backup/restore header operation */
|
||||
SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
|
||||
}
|
||||
|
||||
if (!SetForegroundWindow (hwndDlg) && (FavoriteMountOnArrivalInProgress || LogOn))
|
||||
@@ -2137,6 +2159,10 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
|
||||
case TC_APPMSG_PREBOOT_PASSWORD_MODE:
|
||||
{
|
||||
/* No support for mounting TrueCrypt system partition */
|
||||
SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
|
||||
|
||||
ToBootPwdField (hwndDlg, IDC_PASSWORD);
|
||||
|
||||
// Attempt to wipe the password stored in the input field buffer
|
||||
@@ -2278,6 +2304,15 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
|
||||
bCacheInDriver = IsButtonChecked (GetDlgItem (hwndDlg, IDC_CACHE));
|
||||
*pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
|
||||
*truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
|
||||
/* SHA-256 is not supported by TrueCrypt */
|
||||
if ( (*truecryptMode)
|
||||
&& ((*pkcs5 == SHA256) || (mountOptions.ProtectHiddenVolume && mountOptions.ProtectedHidVolPkcs5Prf == SHA256))
|
||||
)
|
||||
{
|
||||
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Attempt to wipe password stored in the input field buffer
|
||||
@@ -2629,16 +2664,19 @@ BOOL CALLBACK MountOptionsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
|
||||
SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
|
||||
|
||||
int i, nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
|
||||
int i, nSelectedIndex = 0, nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
|
||||
SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
|
||||
|
||||
for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
|
||||
{
|
||||
nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
|
||||
SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
|
||||
/* if a PRF was selected previously, select it */
|
||||
if (i == mountOptions->ProtectedHidVolPkcs5Prf)
|
||||
nSelectedIndex = nIndex;
|
||||
}
|
||||
|
||||
SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
|
||||
SendMessage (hComboBox, CB_SETCURSEL, nSelectedIndex, 0);
|
||||
|
||||
protect = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PROTECT_HIDDEN_VOL));
|
||||
|
||||
@@ -2976,9 +3014,17 @@ BOOL CALLBACK VolumePropertiesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LP
|
||||
ListSubItemSetW (list, i++, 1, GetString (IsHiddenOSRunning() ? "TYPE_HIDDEN_SYSTEM_ADJECTIVE" : "SYSTEM_VOLUME_TYPE_ADJECTIVE"));
|
||||
else
|
||||
{
|
||||
ListSubItemSetW (list, i++, 1,
|
||||
prop.hiddenVolume ? GetString ("HIDDEN") :
|
||||
(prop.hiddenVolProtection != HIDVOL_PROT_STATUS_NONE ? GetString ("OUTER") : GetString ("NORMAL")));
|
||||
bool truecryptMode = prop.pkcs5Iterations == get_pkcs5_iteration_count(prop.pkcs5, TRUE, prop.partitionInInactiveSysEncScope);
|
||||
s = prop.hiddenVolume ? GetString ("HIDDEN") :
|
||||
(prop.hiddenVolProtection != HIDVOL_PROT_STATUS_NONE ? GetString ("OUTER") : GetString ("NORMAL"));
|
||||
|
||||
if (truecryptMode)
|
||||
{
|
||||
StringCbPrintfW (sw, sizeof(sw), L"TrueCrypt - %s", s);
|
||||
ListSubItemSetW (list, i++, 1, sw);
|
||||
}
|
||||
else
|
||||
ListSubItemSetW (list, i++, 1, s);
|
||||
}
|
||||
|
||||
if (!bSysEnc)
|
||||
@@ -3541,7 +3587,7 @@ LPARAM GetItemLong (HWND hTree, int itemNo)
|
||||
return item.lParam;
|
||||
}
|
||||
|
||||
static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, char *titleStringId, BOOL enableMountOptions)
|
||||
static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, BOOL* truecryptMode, char *titleStringId, BOOL enableMountOptions)
|
||||
{
|
||||
int result;
|
||||
PasswordDlgParam dlgParam;
|
||||
@@ -3551,6 +3597,7 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, char
|
||||
|
||||
dlgParam.password = password;
|
||||
dlgParam.pkcs5 = pkcs5;
|
||||
dlgParam.truecryptMode = truecryptMode;
|
||||
|
||||
result = DialogBoxParamW (hInst,
|
||||
MAKEINTRESOURCEW (IDD_PASSWORD_DLG), hwndDlg,
|
||||
@@ -3560,6 +3607,7 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, char
|
||||
{
|
||||
password->Length = 0;
|
||||
*pkcs5 = 0;
|
||||
*truecryptMode = FALSE;
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
}
|
||||
@@ -3584,6 +3632,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
|
||||
{
|
||||
VolumePassword.Length = 0;
|
||||
VolumePkcs5 = 0;
|
||||
VolumeTrueCryptMode = FALSE;
|
||||
}
|
||||
|
||||
if (szFileName == NULL)
|
||||
@@ -3619,7 +3668,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
|
||||
// First try cached passwords and if they fail ask user for a new one
|
||||
WaitCursor ();
|
||||
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, CmdVolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
|
||||
// If keyfiles are enabled, test empty password first
|
||||
if (!mounted && KeyFilesEnable && FirstKeyFile)
|
||||
@@ -3628,16 +3677,19 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
|
||||
emptyPassword.Length = 0;
|
||||
|
||||
KeyFilesApply (hwndDlg, &emptyPassword, FirstKeyFile);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, CmdVolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
if (mounted)
|
||||
{
|
||||
VolumePkcs5 = CmdVolumePkcs5;
|
||||
VolumeTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
}
|
||||
|
||||
burn (&emptyPassword, sizeof (emptyPassword));
|
||||
}
|
||||
|
||||
// Test password and/or keyfiles used for the previous volume
|
||||
if (!mounted && MultipleMountOperationInProgress && VolumePassword.Length != 0)
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
|
||||
NormalCursor ();
|
||||
|
||||
@@ -3655,18 +3707,22 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
|
||||
{
|
||||
VolumePassword = CmdVolumePassword;
|
||||
VolumePkcs5 = CmdVolumePkcs5;
|
||||
VolumeTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
}
|
||||
else if (!Silent)
|
||||
{
|
||||
int GuiPkcs5 = CmdVolumePkcs5;
|
||||
BOOL GuiTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
StringCbCopyA (PasswordDlgVolume, sizeof(PasswordDlgVolume), szFileName);
|
||||
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, NULL, TRUE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
|
||||
goto ret;
|
||||
else
|
||||
{
|
||||
VolumePkcs5 = GuiPkcs5;
|
||||
VolumeTrueCryptMode = GuiTrueCryptMode;
|
||||
burn (&GuiPkcs5, sizeof(GuiPkcs5));
|
||||
burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3675,7 +3731,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
|
||||
if (KeyFilesEnable)
|
||||
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile);
|
||||
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, Silent, !Silent);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, !Silent);
|
||||
NormalCursor ();
|
||||
|
||||
// Check for legacy non-ASCII passwords
|
||||
@@ -3690,6 +3746,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
|
||||
{
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
}
|
||||
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
@@ -3724,6 +3781,7 @@ ret:
|
||||
{
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
}
|
||||
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
@@ -3931,13 +3989,16 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
if (!CmdVolumePasswordValid && bPasswordPrompt)
|
||||
{
|
||||
int GuiPkcs5 = CmdVolumePkcs5;
|
||||
BOOL GuiTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
PasswordDlgVolume[0] = '\0';
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, NULL, TRUE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
|
||||
goto ret;
|
||||
else
|
||||
{
|
||||
VolumePkcs5 = GuiPkcs5;
|
||||
VolumeTrueCryptMode = GuiTrueCryptMode;
|
||||
burn (&GuiPkcs5, sizeof(GuiPkcs5));
|
||||
burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
|
||||
}
|
||||
}
|
||||
else if (CmdVolumePasswordValid)
|
||||
@@ -3945,6 +4006,7 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
bPasswordPrompt = FALSE;
|
||||
VolumePassword = CmdVolumePassword;
|
||||
VolumePkcs5 = CmdVolumePkcs5;
|
||||
VolumeTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
}
|
||||
|
||||
WaitCursor();
|
||||
@@ -3998,8 +4060,8 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
goto ret;
|
||||
|
||||
// First try user password then cached passwords
|
||||
if ((mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, TRUE, FALSE)) > 0
|
||||
|| (mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, VolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, TRUE, FALSE)) > 0)
|
||||
if ((mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, TRUE, FALSE)) > 0
|
||||
|| (mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, TRUE, FALSE)) > 0)
|
||||
{
|
||||
// A volume has been successfully mounted
|
||||
|
||||
@@ -4078,6 +4140,7 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
{
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
}
|
||||
@@ -4114,6 +4177,7 @@ ret:
|
||||
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
|
||||
@@ -4978,7 +5042,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
BOOL mounted;
|
||||
|
||||
// Cached password
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, NULL, CmdVolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, NULL, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
|
||||
|
||||
// Command line password or keyfiles
|
||||
if (!mounted && (CmdVolumePassword.Length != 0 || FirstCmdKeyFile))
|
||||
@@ -4989,7 +5053,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
KeyFilesApply (hwndDlg, &CmdVolumePassword, FirstCmdKeyFile);
|
||||
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A',
|
||||
szFileName, &CmdVolumePassword, CmdVolumePkcs5, bCacheInDriver, bForceMount,
|
||||
szFileName, &CmdVolumePassword, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount,
|
||||
&mountOptions, Silent, reportBadPasswd);
|
||||
|
||||
burn (&CmdVolumePassword, sizeof (CmdVolumePassword));
|
||||
@@ -5005,15 +5069,18 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
while (!mounted && !Silent)
|
||||
{
|
||||
int GuiPkcs5 = CmdVolumePkcs5;
|
||||
BOOL GuiTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
VolumePassword.Length = 0;
|
||||
|
||||
StringCbCopyA (PasswordDlgVolume, sizeof(PasswordDlgVolume),szFileName);
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, NULL, TRUE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
|
||||
break;
|
||||
else
|
||||
{
|
||||
VolumePkcs5 = GuiPkcs5;
|
||||
VolumeTrueCryptMode = GuiTrueCryptMode;
|
||||
burn (&GuiPkcs5, sizeof(GuiPkcs5));
|
||||
burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
|
||||
}
|
||||
|
||||
WaitCursor ();
|
||||
@@ -5021,10 +5088,11 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
if (KeyFilesEnable && FirstKeyFile)
|
||||
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile);
|
||||
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, &VolumePassword, VolumePkcs5, bCacheInDriver, bForceMount, &mountOptions, FALSE, TRUE);
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, FALSE, TRUE);
|
||||
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
|
||||
@@ -6880,6 +6948,7 @@ void ExtractCommandLine (HWND hwndDlg, char *lpszCommandLine)
|
||||
OptionVolume,
|
||||
CommandWipeCache,
|
||||
OptionPkcs5,
|
||||
OptionTrueCryptMode,
|
||||
};
|
||||
|
||||
argument args[]=
|
||||
@@ -6901,7 +6970,8 @@ void ExtractCommandLine (HWND hwndDlg, char *lpszCommandLine)
|
||||
{ OptionTokenLib, "/tokenlib", NULL, FALSE },
|
||||
{ OptionVolume, "/volume", "/v", FALSE },
|
||||
{ CommandWipeCache, "/wipecache", "/w", FALSE },
|
||||
{ OptionPkcs5, "/hash", NULL , FALSE }
|
||||
{ OptionPkcs5, "/hash", NULL , FALSE },
|
||||
{ OptionTrueCryptMode, "/truecrypt", "/tc", FALSE },
|
||||
};
|
||||
|
||||
argumentspec as;
|
||||
@@ -7125,6 +7195,9 @@ void ExtractCommandLine (HWND hwndDlg, char *lpszCommandLine)
|
||||
Error ("COMMAND_LINE_ERROR", hwndDlg);
|
||||
}
|
||||
break;
|
||||
case OptionTrueCryptMode:
|
||||
CmdVolumeTrueCryptMode = TRUE;
|
||||
break;
|
||||
|
||||
// no option = file name
|
||||
default:
|
||||
@@ -7585,6 +7658,7 @@ skipMount:
|
||||
MultipleMountOperationInProgress = FALSE;
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
|
||||
if (status && CloseSecurityTokenSessionsAfterMount)
|
||||
SecurityToken::CloseAllSessions();
|
||||
@@ -7838,7 +7912,7 @@ int BackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, const char *lps
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
if (!AskVolumePassword (hwndDlg, askPassword, &VolumePkcs5, type == TC_VOLUME_TYPE_HIDDEN ? "ENTER_HIDDEN_VOL_PASSWORD" : "ENTER_NORMAL_VOL_PASSWORD", FALSE))
|
||||
if (!AskVolumePassword (hwndDlg, askPassword, &VolumePkcs5, &VolumeTrueCryptMode, type == TC_VOLUME_TYPE_HIDDEN ? "ENTER_HIDDEN_VOL_PASSWORD" : "ENTER_NORMAL_VOL_PASSWORD", FALSE))
|
||||
{
|
||||
nStatus = ERR_SUCCESS;
|
||||
goto ret;
|
||||
@@ -7849,7 +7923,7 @@ int BackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, const char *lps
|
||||
if (KeyFilesEnable && FirstKeyFile)
|
||||
KeyFilesApply (hwndDlg, askPassword, FirstKeyFile);
|
||||
|
||||
nStatus = OpenVolume (askVol, lpszVolume, askPassword, VolumePkcs5, FALSE, bPreserveTimestamp, FALSE);
|
||||
nStatus = OpenVolume (askVol, lpszVolume, askPassword, VolumePkcs5, VolumeTrueCryptMode, FALSE, bPreserveTimestamp, FALSE);
|
||||
|
||||
NormalCursor();
|
||||
|
||||
@@ -8003,6 +8077,7 @@ error:
|
||||
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&hiddenVolPassword, sizeof (hiddenVolPassword));
|
||||
burn (temporaryKey, sizeof (temporaryKey));
|
||||
burn (originalK2, sizeof (originalK2));
|
||||
@@ -8104,7 +8179,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const char *lpszVolume)
|
||||
while (TRUE)
|
||||
{
|
||||
StringCbCopyA (PasswordDlgVolume, sizeof(PasswordDlgVolume), lpszVolume);
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &VolumePkcs5, NULL, FALSE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &VolumePkcs5, &VolumeTrueCryptMode, NULL, FALSE))
|
||||
{
|
||||
nStatus = ERR_SUCCESS;
|
||||
goto ret;
|
||||
@@ -8115,7 +8190,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const char *lpszVolume)
|
||||
if (KeyFilesEnable && FirstKeyFile)
|
||||
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile);
|
||||
|
||||
nStatus = OpenVolume (&volume, lpszVolume, &VolumePassword, VolumePkcs5, TRUE, bPreserveTimestamp, TRUE);
|
||||
nStatus = OpenVolume (&volume, lpszVolume, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode,TRUE, bPreserveTimestamp, TRUE);
|
||||
|
||||
NormalCursor();
|
||||
|
||||
@@ -8306,7 +8381,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const char *lpszVolume)
|
||||
// Open the header
|
||||
while (TRUE)
|
||||
{
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &VolumePkcs5, "ENTER_HEADER_BACKUP_PASSWORD", FALSE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &VolumePkcs5, &VolumeTrueCryptMode, "ENTER_HEADER_BACKUP_PASSWORD", FALSE))
|
||||
{
|
||||
nStatus = ERR_SUCCESS;
|
||||
goto ret;
|
||||
@@ -8322,7 +8397,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const char *lpszVolume)
|
||||
if (type == TC_VOLUME_TYPE_HIDDEN)
|
||||
headerOffsetBackupFile += (legacyBackup ? TC_VOLUME_HEADER_SIZE_LEGACY : TC_VOLUME_HEADER_SIZE);
|
||||
|
||||
nStatus = ReadVolumeHeader (FALSE, buffer + headerOffsetBackupFile, &VolumePassword, VolumePkcs5, &restoredCryptoInfo, NULL);
|
||||
nStatus = ReadVolumeHeader (FALSE, buffer + headerOffsetBackupFile, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, &restoredCryptoInfo, NULL);
|
||||
if (nStatus == ERR_SUCCESS)
|
||||
break;
|
||||
}
|
||||
@@ -8427,6 +8502,7 @@ error:
|
||||
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
RestoreDefaultKeyFilesParam();
|
||||
RandStop (FALSE);
|
||||
NormalCursor();
|
||||
|
||||
@@ -52,6 +52,7 @@ typedef struct
|
||||
{
|
||||
Password *password;
|
||||
int* pkcs5;
|
||||
BOOL* truecryptMode;
|
||||
} PasswordDlgParam;
|
||||
|
||||
extern VOLUME_NOTIFICATIONS_LIST VolumeNotificationsList;
|
||||
|
||||
+27
-25
@@ -103,34 +103,35 @@ BEGIN
|
||||
CONTROL "",IDC_VOLUME_PROPERTIES_LIST,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,6,269,154
|
||||
END
|
||||
|
||||
IDD_PASSWORDCHANGE_DLG DIALOGEX 0, 0, 316, 207
|
||||
IDD_PASSWORDCHANGE_DLG DIALOGEX 0, 0, 330, 207
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Change Password or Keyfiles"
|
||||
CLASS "CustomDlg"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
EDITTEXT IDC_OLD_PASSWORD,89,14,147,13,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
CONTROL "Use keyfiles",IDC_ENABLE_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,53,86,10
|
||||
PUSHBUTTON "Keyfiles...",IDC_KEYFILES,177,51,59,14
|
||||
EDITTEXT IDC_OLD_PASSWORD,89,14,162,13,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
CONTROL "Use keyfiles",IDC_ENABLE_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,53,98,10
|
||||
PUSHBUTTON "Keyfiles...",IDC_KEYFILES,192,50,59,14
|
||||
CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_ORI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,65,138,10,WS_EX_TRANSPARENT
|
||||
EDITTEXT IDC_PASSWORD,89,99,147,13,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_VERIFY,89,115,147,13,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
CONTROL "Use keyfiles",IDC_ENABLE_NEW_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,134,86,11
|
||||
PUSHBUTTON "Keyfiles...",IDC_NEW_KEYFILES,177,132,59,14
|
||||
CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_NEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,146,139,11,WS_EX_TRANSPARENT
|
||||
COMBOBOX IDC_PKCS5_PRF_ID,89,161,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
DEFPUSHBUTTON "OK",IDOK,251,7,59,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,251,24,59,14
|
||||
EDITTEXT IDC_PASSWORD,89,99,162,13,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_VERIFY,89,115,162,13,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
CONTROL "Use keyfiles",IDC_ENABLE_NEW_KEYFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,134,99,11
|
||||
PUSHBUTTON "Keyfiles...",IDC_NEW_KEYFILES,192,132,59,14
|
||||
CONTROL "Display password",IDC_SHOW_PASSWORD_CHPWD_NEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,146,160,11,WS_EX_TRANSPARENT
|
||||
COMBOBOX IDC_PKCS5_PRF_ID,89,161,85,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
DEFPUSHBUTTON "OK",IDOK,264,7,59,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,264,24,59,14
|
||||
RTEXT "Password:",IDT_PASSWORD,12,16,72,8
|
||||
RTEXT "Password:",IDT_NEW_PASSWORD,8,102,76,8
|
||||
RTEXT "Confirm Password:",IDT_CONFIRM_PASSWORD,9,118,75,16
|
||||
RTEXT "PKCS-5 PRF:",IDT_NEW_PKCS5_PRF,9,162,74,10,SS_CENTERIMAGE
|
||||
GROUPBOX "Current",IDT_CURRENT,6,3,238,77
|
||||
GROUPBOX "New",IDT_NEW,6,87,238,113
|
||||
COMBOBOX IDC_WIPE_MODE,89,180,125,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
GROUPBOX "Current",IDT_CURRENT,6,3,252,77
|
||||
GROUPBOX "New",IDT_NEW,6,87,252,113
|
||||
COMBOBOX IDC_WIPE_MODE,89,180,106,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
RTEXT "Wipe mode:",IDT_WIPE_MODE,9,182,74,8,0,WS_EX_RIGHT
|
||||
COMBOBOX IDC_PKCS5_OLD_PRF_ID,89,33,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
COMBOBOX IDC_PKCS5_OLD_PRF_ID,89,33,85,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,12,34,74,10,SS_CENTERIMAGE
|
||||
CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,179,35,78,10
|
||||
END
|
||||
|
||||
IDD_MOUNT_DLG DIALOGEX 0, 0, 375, 271
|
||||
@@ -163,23 +164,24 @@ BEGIN
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,2,151,372,119
|
||||
END
|
||||
|
||||
IDD_PASSWORD_DLG DIALOGEX 0, 0, 305, 91
|
||||
IDD_PASSWORD_DLG DIALOGEX 0, 0, 322, 91
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Enter VeraCrypt Volume Password"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
EDITTEXT IDC_PASSWORD,69,8,153,14,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_PASSWORD,69,8,166,14,ES_PASSWORD | ES_AUTOHSCROLL
|
||||
CONTROL "Cache passwords and keyfil&es in memory",IDC_CACHE,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,50,153,10
|
||||
CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,63,83,10
|
||||
CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,75,83,11
|
||||
PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,158,72,64,14
|
||||
PUSHBUTTON "Mount Opti&ons...",IDC_MOUNT_OPTIONS,229,72,64,14
|
||||
DEFPUSHBUTTON "OK",IDOK,229,8,64,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,229,25,64,14
|
||||
PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,171,72,64,14
|
||||
PUSHBUTTON "Mount Opti&ons...",IDC_MOUNT_OPTIONS,243,72,64,14
|
||||
DEFPUSHBUTTON "OK",IDOK,243,8,64,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,243,25,64,14
|
||||
RTEXT "Password:",IDT_PASSWORD,0,10,65,13
|
||||
COMBOBOX IDC_PKCS5_PRF_ID,69,26,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
COMBOBOX IDC_PKCS5_PRF_ID,69,26,86,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,27,65,13
|
||||
CONTROL "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,28,76,10
|
||||
END
|
||||
|
||||
IDD_TRAVELER_DLG DIALOGEX 0, 0, 300, 269
|
||||
@@ -357,7 +359,7 @@ BEGIN
|
||||
IDD_PASSWORDCHANGE_DLG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 309
|
||||
RIGHTMARGIN, 323
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 200
|
||||
END
|
||||
@@ -370,7 +372,7 @@ BEGIN
|
||||
|
||||
IDD_PASSWORD_DLG, DIALOG
|
||||
BEGIN
|
||||
RIGHTMARGIN, 296
|
||||
RIGHTMARGIN, 313
|
||||
BOTTOMMARGIN, 86
|
||||
END
|
||||
|
||||
|
||||
@@ -160,6 +160,7 @@
|
||||
#define IDC_PREF_DISMOUNT_SESSION_LOCKED 1137
|
||||
#define IDT_NEW_PKCS5_PRF 1138
|
||||
#define IDC_PKCS5_OLD_PRF_ID 1139
|
||||
#define IDC_TRUECRYPT_MODE 1140
|
||||
#define IDM_HELP 40001
|
||||
#define IDM_ABOUT 40002
|
||||
#define IDM_UNMOUNT_VOLUME 40003
|
||||
@@ -232,7 +233,7 @@
|
||||
#define _APS_NO_MFC 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 118
|
||||
#define _APS_NEXT_COMMAND_VALUE 40065
|
||||
#define _APS_NEXT_CONTROL_VALUE 1140
|
||||
#define _APS_NEXT_CONTROL_VALUE 1141
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user