mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Windows: Remove TrueCrypt support. Increment version to 1.26.4.
This commit is contained in:
@@ -162,9 +162,6 @@ int CmdVolumePkcs5 = 0;
|
||||
int VolumePim = -1;
|
||||
int CmdVolumePim = -1;
|
||||
int DefaultVolumePkcs5 = 0;
|
||||
BOOL VolumeTrueCryptMode = FALSE;
|
||||
BOOL CmdVolumeTrueCryptMode = FALSE;
|
||||
BOOL DefaultVolumeTrueCryptMode = FALSE;
|
||||
BOOL CmdVolumePasswordValid = FALSE;
|
||||
MountOptions CmdMountOptions;
|
||||
BOOL CmdMountOptionsValid = FALSE;
|
||||
@@ -407,8 +404,6 @@ static void localcleanup (void)
|
||||
burn (&CmdVolumePkcs5, sizeof (CmdVolumePkcs5));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&CmdVolumePim, sizeof (CmdVolumePim));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&CmdVolumeTrueCryptMode, sizeof (CmdVolumeTrueCryptMode));
|
||||
burn (&mountOptions, sizeof (mountOptions));
|
||||
burn (&defaultMountOptions, sizeof (defaultMountOptions));
|
||||
burn (szFileName, sizeof(szFileName));
|
||||
@@ -1083,7 +1078,6 @@ void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL*
|
||||
|
||||
// Mount Options
|
||||
ConfigReadCompareInt ("DefaultPRF", 0, &DefaultVolumePkcs5, bOnlyCheckModified, pbSettingsModified);
|
||||
ConfigReadCompareInt ("DefaultTrueCryptMode", FALSE, &DefaultVolumeTrueCryptMode, bOnlyCheckModified, pbSettingsModified);
|
||||
|
||||
if (bOnlyCheckModified)
|
||||
{
|
||||
@@ -1107,8 +1101,6 @@ void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL*
|
||||
|
||||
if (DefaultVolumePkcs5 < 0 || DefaultVolumePkcs5 > LAST_PRF_ID)
|
||||
DefaultVolumePkcs5 = 0;
|
||||
if (DefaultVolumeTrueCryptMode != TRUE && DefaultVolumeTrueCryptMode != FALSE)
|
||||
DefaultVolumeTrueCryptMode = FALSE;
|
||||
|
||||
}
|
||||
|
||||
@@ -1221,7 +1213,6 @@ void SaveSettings (HWND hwndDlg)
|
||||
|
||||
// Mount Options
|
||||
ConfigWriteInt ("DefaultPRF", DefaultVolumePkcs5);
|
||||
ConfigWriteInt ("DefaultTrueCryptMode", DefaultVolumeTrueCryptMode);
|
||||
|
||||
ConfigWriteEnd (hwndDlg);
|
||||
}
|
||||
@@ -2027,13 +2018,7 @@ void LoadDriveLetters (HWND hwndDlg, HWND hTree, int drive)
|
||||
ws = L"?";
|
||||
}
|
||||
|
||||
if (driver.truecryptMode[i])
|
||||
{
|
||||
StringCbPrintfW (szTmpW, sizeof(szTmpW), L"TrueCrypt-%s", ws);
|
||||
ListSubItemSet (hTree, listItem.iItem, 4, szTmpW);
|
||||
}
|
||||
else
|
||||
ListSubItemSet (hTree, listItem.iItem, 4, ws);
|
||||
ListSubItemSet (hTree, listItem.iItem, 4, ws);
|
||||
|
||||
if (driver.volumeType[i] == PROP_VOL_TYPE_OUTER_VOL_WRITE_PREVENTED) // Normal/outer volume (hidden volume protected AND write denied)
|
||||
{
|
||||
@@ -2160,7 +2145,6 @@ typedef struct
|
||||
int pkcs5;
|
||||
int pim;
|
||||
int wipePassCount;
|
||||
BOOL truecryptMode;
|
||||
int* pnStatus;
|
||||
} ChangePwdThreadParam;
|
||||
|
||||
@@ -2197,14 +2181,14 @@ void CALLBACK ChangePwdWaitThreadProc(void* pArg, HWND hwndDlg)
|
||||
{
|
||||
// Non-system
|
||||
|
||||
*pThreadParam->pnStatus = ChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->old_pim, pThreadParam->truecryptMode, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->pim, pThreadParam->wipePassCount, hwndDlg);
|
||||
*pThreadParam->pnStatus = ChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->old_pim, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->pim, 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->old_pim, pThreadParam->truecryptMode, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->pim, pThreadParam->wipePassCount, hwndDlg);
|
||||
*pThreadParam->pnStatus = UacChangePwd (szFileName, pThreadParam->oldPassword, pThreadParam->old_pkcs5, pThreadParam->old_pim, pThreadParam->newPassword, pThreadParam->pkcs5, pThreadParam->pim, pThreadParam->wipePassCount, hwndDlg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2279,7 +2263,6 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
int i;
|
||||
WipeAlgorithmId headerWipeMode = TC_WIPE_3_DOD_5220;
|
||||
int EffectiveVolumePkcs5 = CmdVolumePkcs5;
|
||||
BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
int EffectiveVolumePim = CmdVolumePim;
|
||||
|
||||
/* Priority is given to command line parameters
|
||||
@@ -2287,8 +2270,6 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
*/
|
||||
if (EffectiveVolumePkcs5 == 0)
|
||||
EffectiveVolumePkcs5 = DefaultVolumePkcs5;
|
||||
if (!EffectiveVolumeTrueCryptMode)
|
||||
EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
|
||||
|
||||
NewPimValuePtr = (int*) lParam;
|
||||
|
||||
@@ -2335,9 +2316,6 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
|
||||
SendMessage (hComboBox, CB_SETCURSEL, nSelectedIndex, 0);
|
||||
|
||||
/* check TrueCrypt Mode if it was set as default*/
|
||||
SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, EffectiveVolumeTrueCryptMode);
|
||||
|
||||
/* set default PIM if set in the command line*/
|
||||
if (EffectiveVolumePim > 0)
|
||||
{
|
||||
@@ -2436,10 +2414,6 @@ 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);
|
||||
@@ -2767,14 +2741,6 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
|
||||
}
|
||||
|
||||
if (lw == IDC_TRUECRYPT_MODE)
|
||||
{
|
||||
BOOL bEnablePim = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE) ? FALSE: TRUE;
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDT_OLD_PIM), bEnablePim);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_OLD_PIM), bEnablePim);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_OLD_PIM_HELP), bEnablePim);
|
||||
}
|
||||
|
||||
if (lw == IDC_SHOW_PASSWORD_CHPWD_ORI)
|
||||
{
|
||||
HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PASSWORD_CHPWD_ORI, IDC_OLD_PASSWORD, IDC_OLD_PIM);
|
||||
@@ -2803,22 +2769,10 @@ 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 = (int) 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);
|
||||
|
||||
int old_pim = GetPim (hwndDlg, IDC_OLD_PIM, 0);
|
||||
int pim = GetPim (hwndDlg, IDC_PIM, 0);
|
||||
int iMaxPasswordLength = (bUseLegacyMaxPasswordLength || truecryptMode)? MAX_LEGACY_PASSWORD : MAX_PASSWORD;
|
||||
|
||||
if (truecryptMode && !is_pkcs5_prf_supported (old_pkcs5, TRUE, PRF_BOOT_NO))
|
||||
{
|
||||
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
else if (truecryptMode && (old_pim != 0))
|
||||
{
|
||||
Error ("PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
int iMaxPasswordLength = (bUseLegacyMaxPasswordLength)? MAX_LEGACY_PASSWORD : MAX_PASSWORD;
|
||||
|
||||
if (bSysEncPwdChangeDlgMode && !CheckPasswordCharEncoding (GetDlgItem (hwndDlg, IDC_PASSWORD), NULL))
|
||||
{
|
||||
@@ -2865,7 +2819,7 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
|
||||
GetVolumePath (hParent, szFileName, ARRAYSIZE (szFileName));
|
||||
|
||||
if (GetPassword (hwndDlg, IDC_OLD_PASSWORD, (LPSTR) oldPassword.Text, iMaxPasswordLength + 1, truecryptMode, TRUE))
|
||||
if (GetPassword (hwndDlg, IDC_OLD_PASSWORD, (LPSTR) oldPassword.Text, iMaxPasswordLength + 1, FALSE, TRUE))
|
||||
oldPassword.Length = (unsigned __int32) strlen ((char *) oldPassword.Text);
|
||||
else
|
||||
{
|
||||
@@ -2912,7 +2866,6 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
changePwdParam.pim = pim;
|
||||
changePwdParam.wipePassCount = GetWipePassCount(headerWiperMode);
|
||||
changePwdParam.pnStatus = &nStatus;
|
||||
changePwdParam.truecryptMode = truecryptMode;
|
||||
|
||||
ShowWaitDialog(hwndDlg, TRUE, ChangePwdWaitThreadProc, &changePwdParam);
|
||||
|
||||
@@ -2987,7 +2940,6 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
static Password *szXPwd;
|
||||
static int *pkcs5;
|
||||
static int *pim;
|
||||
static BOOL* truecryptMode;
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
@@ -2997,7 +2949,6 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
szXPwd = ((PasswordDlgParam *) lParam) -> password;
|
||||
pkcs5 = ((PasswordDlgParam *) lParam) -> pkcs5;
|
||||
pim = ((PasswordDlgParam *) lParam) -> pim;
|
||||
truecryptMode = ((PasswordDlgParam *) lParam) -> truecryptMode;
|
||||
LocalizeDialog (hwndDlg, "IDD_PASSWORD_DLG");
|
||||
DragAcceptFiles (hwndDlg, TRUE);
|
||||
|
||||
@@ -3075,14 +3026,6 @@ 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);
|
||||
}
|
||||
else if (*truecryptMode)
|
||||
{
|
||||
/* Check TrueCryptMode if it is enabled on the command line */
|
||||
SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, TRUE);
|
||||
}
|
||||
|
||||
if (!SetForegroundWindow (hwndDlg) && (FavoriteMountOnArrivalInProgress || LogOn))
|
||||
@@ -3279,14 +3222,6 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (lw == IDC_TRUECRYPT_MODE)
|
||||
{
|
||||
BOOL bEnablePim = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE) ? FALSE: TRUE;
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDT_PIM), bEnablePim);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PIM), bEnablePim);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PIM_HELP), bEnablePim);
|
||||
}
|
||||
|
||||
if (lw == IDC_KEY_FILES)
|
||||
{
|
||||
KeyFilesDlgParam param;
|
||||
@@ -3319,38 +3254,19 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
|
||||
if (lw == IDOK)
|
||||
{
|
||||
BOOL bTrueCryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
|
||||
int iMaxPasswordLength = (bUseLegacyMaxPasswordLength || bTrueCryptMode)? MAX_LEGACY_PASSWORD : MAX_PASSWORD;
|
||||
int iMaxPasswordLength = (bUseLegacyMaxPasswordLength)? MAX_LEGACY_PASSWORD : MAX_PASSWORD;
|
||||
if (mountOptions.ProtectHiddenVolume && hidVolProtKeyFilesParam.EnableKeyFiles)
|
||||
KeyFilesApply (hwndDlg, &mountOptions.ProtectedHidVolPassword, hidVolProtKeyFilesParam.FirstKeyFile, wcslen (PasswordDlgVolume) > 0 ? PasswordDlgVolume : NULL);
|
||||
|
||||
if (GetPassword (hwndDlg, IDC_PASSWORD, (LPSTR) szXPwd->Text, iMaxPasswordLength + 1, bTrueCryptMode, TRUE))
|
||||
if (GetPassword (hwndDlg, IDC_PASSWORD, (LPSTR) szXPwd->Text, iMaxPasswordLength + 1, FALSE, TRUE))
|
||||
szXPwd->Length = (unsigned __int32) strlen ((char *) szXPwd->Text);
|
||||
else
|
||||
return 1;
|
||||
|
||||
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 = bTrueCryptMode;
|
||||
|
||||
*pim = GetPim (hwndDlg, IDC_PIM, 0);
|
||||
|
||||
/* check that PRF is supported in TrueCrypt Mode */
|
||||
if ( (*truecryptMode)
|
||||
&& ((!is_pkcs5_prf_supported (*pkcs5, TRUE, PRF_BOOT_NO)) || (mountOptions.ProtectHiddenVolume && !is_pkcs5_prf_supported (mountOptions.ProtectedHidVolPkcs5Prf, TRUE, PRF_BOOT_NO)))
|
||||
)
|
||||
{
|
||||
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( (*truecryptMode)
|
||||
&& (*pim != 0)
|
||||
)
|
||||
{
|
||||
Error ("PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Attempt to wipe password stored in the input field buffer
|
||||
@@ -4250,17 +4166,10 @@ BOOL CALLBACK VolumePropertiesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LP
|
||||
ListSubItemSet (list, i++, 1, GetString (IsHiddenOSRunning() ? "TYPE_HIDDEN_SYSTEM_ADJECTIVE" : "SYSTEM_VOLUME_TYPE_ADJECTIVE"));
|
||||
else
|
||||
{
|
||||
bool truecryptMode = prop.pkcs5Iterations == get_pkcs5_iteration_count(prop.pkcs5, 0, 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);
|
||||
ListSubItemSet (list, i++, 1, sw);
|
||||
}
|
||||
else
|
||||
ListSubItemSet (list, i++, 1, s);
|
||||
ListSubItemSet (list, i++, 1, s);
|
||||
}
|
||||
|
||||
if (!bSysEnc)
|
||||
@@ -5201,7 +5110,7 @@ LPARAM GetItemLong (HWND hTree, int itemNo)
|
||||
return item.lParam;
|
||||
}
|
||||
|
||||
static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int *pim, BOOL* truecryptMode, char *titleStringId, BOOL enableMountOptions)
|
||||
static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int *pim, char *titleStringId, BOOL enableMountOptions)
|
||||
{
|
||||
INT_PTR result;
|
||||
PasswordDlgParam dlgParam;
|
||||
@@ -5212,7 +5121,6 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int
|
||||
dlgParam.password = password;
|
||||
dlgParam.pkcs5 = pkcs5;
|
||||
dlgParam.pim = pim;
|
||||
dlgParam.truecryptMode = truecryptMode;
|
||||
|
||||
result = SecureDesktopDialogBoxParam (hInst,
|
||||
MAKEINTRESOURCEW (IDD_PASSWORD_DLG), hwndDlg,
|
||||
@@ -5223,7 +5131,6 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int
|
||||
password->Length = 0;
|
||||
*pkcs5 = 0;
|
||||
*pim = -1;
|
||||
*truecryptMode = FALSE;
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
}
|
||||
@@ -5233,12 +5140,11 @@ static int AskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, int
|
||||
|
||||
// GUI actions
|
||||
|
||||
static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim, int pkcs5, int trueCryptMode)
|
||||
static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim, int pkcs5)
|
||||
{
|
||||
BOOL status = FALSE;
|
||||
wchar_t fileName[MAX_PATH];
|
||||
int mounted = 0, EffectiveVolumePkcs5 = 0;
|
||||
BOOL EffectiveVolumeTrueCryptMode = FALSE;
|
||||
int EffectiveVolumePim = (pim < 0)? CmdVolumePim : pim;
|
||||
BOOL bEffectiveCacheDuringMultipleMount = bCmdCacheDuringMultipleMount? TRUE: bCacheDuringMultipleMount;
|
||||
BOOL bEffectiveTryEmptyPasswordWhenKeyfileUsed = bCmdTryEmptyPasswordWhenKeyfileUsedValid? bCmdTryEmptyPasswordWhenKeyfileUsed : bTryEmptyPasswordWhenKeyfileUsed;
|
||||
@@ -5254,23 +5160,6 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
else
|
||||
EffectiveVolumePkcs5 = DefaultVolumePkcs5;
|
||||
|
||||
if (trueCryptMode >= 0)
|
||||
EffectiveVolumeTrueCryptMode = (trueCryptMode == 0)? FALSE : TRUE;
|
||||
else if (CmdVolumeTrueCryptMode)
|
||||
EffectiveVolumeTrueCryptMode = TRUE;
|
||||
else
|
||||
EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
|
||||
|
||||
if (EffectiveVolumeTrueCryptMode)
|
||||
{
|
||||
/* No PIM Mode if TrueCrypt Mode specified */
|
||||
EffectiveVolumePim = 0;
|
||||
|
||||
/* valdate the effective PRF is compatible with TrueCrypt Mode */
|
||||
if (!is_pkcs5_prf_supported (EffectiveVolumePkcs5, TRUE, mountOptions.PartitionInInactiveSysEncScope? PRF_BOOT_MBR : PRF_BOOT_NO))
|
||||
EffectiveVolumePkcs5 = 0;
|
||||
}
|
||||
|
||||
bPrebootPasswordDlgMode = mountOptions.PartitionInInactiveSysEncScope;
|
||||
|
||||
if (nDosDriveNo == -1)
|
||||
@@ -5280,7 +5169,6 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
{
|
||||
VolumePassword.Length = 0;
|
||||
VolumePkcs5 = 0;
|
||||
VolumeTrueCryptMode = FALSE;
|
||||
VolumePim = -1;
|
||||
}
|
||||
|
||||
@@ -5328,10 +5216,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
if (!bUseCmdVolumePassword)
|
||||
{
|
||||
// First try cached passwords and if they fail ask user for a new one
|
||||
if (EffectiveVolumeTrueCryptMode)
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, EffectiveVolumePkcs5, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
else
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, EffectiveVolumePkcs5, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, EffectiveVolumePkcs5, EffectiveVolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
|
||||
// If keyfiles are enabled, test empty password first
|
||||
if (!mounted && KeyFilesEnable && FirstKeyFile && bEffectiveTryEmptyPasswordWhenKeyfileUsed)
|
||||
@@ -5340,10 +5225,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
|
||||
KeyFilesApply (hwndDlg, &emptyPassword, FirstKeyFile, szFileName);
|
||||
|
||||
if (EffectiveVolumeTrueCryptMode)
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, EffectiveVolumePkcs5, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
else
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, EffectiveVolumePkcs5, EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, EffectiveVolumePkcs5, EffectiveVolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
|
||||
burn (&emptyPassword, sizeof (emptyPassword));
|
||||
}
|
||||
@@ -5352,11 +5234,8 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
// Test password and/or keyfiles used for the previous volume
|
||||
if (!mounted && bEffectiveCacheDuringMultipleMount && MultipleMountOperationInProgress && VolumePassword.Length != 0)
|
||||
{
|
||||
// try TrueCrypt mode first as it is quick, only if no custom pim specified
|
||||
if (EffectiveVolumeTrueCryptMode)
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, EffectiveVolumePkcs5, 0, TRUE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
else // if no PIM specified for favorite, we use also the PIM of the previous volume alongside its password.
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, EffectiveVolumePkcs5, (EffectiveVolumePim < 0)? VolumePim : EffectiveVolumePim, FALSE, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
// if no PIM specified for favorite, we use also the PIM of the previous volume alongside its password.
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, EffectiveVolumePkcs5, (EffectiveVolumePim < 0)? VolumePim : EffectiveVolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
}
|
||||
|
||||
NormalCursor ();
|
||||
@@ -5375,25 +5254,21 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
{
|
||||
VolumePassword = CmdVolumePassword;
|
||||
VolumePkcs5 = EffectiveVolumePkcs5;
|
||||
VolumeTrueCryptMode = EffectiveVolumeTrueCryptMode;
|
||||
VolumePim = EffectiveVolumePim;
|
||||
}
|
||||
else if (!Silent)
|
||||
{
|
||||
int GuiPkcs5 = EffectiveVolumePkcs5;
|
||||
BOOL GuiTrueCryptMode = EffectiveVolumeTrueCryptMode || IsTrueCryptFileExtension (szFileName)? TRUE : FALSE;
|
||||
int GuiPim = EffectiveVolumePim;
|
||||
StringCbCopyW (PasswordDlgVolume, sizeof(PasswordDlgVolume), szFileName);
|
||||
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, &GuiTrueCryptMode, NULL, TRUE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, NULL, TRUE))
|
||||
goto ret;
|
||||
else
|
||||
{
|
||||
VolumePkcs5 = GuiPkcs5;
|
||||
VolumeTrueCryptMode = GuiTrueCryptMode;
|
||||
VolumePim = GuiPim;
|
||||
burn (&GuiPkcs5, sizeof(GuiPkcs5));
|
||||
burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
|
||||
burn (&GuiPim, sizeof(GuiPim));
|
||||
}
|
||||
}
|
||||
@@ -5403,7 +5278,7 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
if (KeyFilesEnable)
|
||||
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile, szFileName);
|
||||
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumePim, VolumeTrueCryptMode, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, !Silent);
|
||||
mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, !Silent);
|
||||
NormalCursor ();
|
||||
|
||||
// Check for problematic file extensions (exe, dll, sys)
|
||||
@@ -5414,7 +5289,6 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, wchar_t *szFileName, int pim,
|
||||
{
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
}
|
||||
|
||||
@@ -5450,7 +5324,6 @@ ret:
|
||||
{
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
}
|
||||
|
||||
@@ -5512,7 +5385,7 @@ void __cdecl mountThreadFunction (void *hwndDlgArg)
|
||||
EnableWindow(hwndDlg, FALSE);
|
||||
finally_do_arg2 (HWND, hwndDlg, BOOL, bIsForeground, { EnableWindow(finally_arg, TRUE); if (finally_arg2) BringToForeground (finally_arg); bPrebootPasswordDlgMode = FALSE;});
|
||||
|
||||
Mount (hwndDlg, -1, 0, -1, -1, -1);
|
||||
Mount (hwndDlg, -1, 0, -1, -1);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
@@ -5729,15 +5602,12 @@ static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
int mountedVolCount = 0;
|
||||
vector <HostDevice> devices;
|
||||
int EffectiveVolumePkcs5 = CmdVolumePkcs5;
|
||||
BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
|
||||
/* Priority is given to command line parameters
|
||||
* Default values used only when nothing specified in command line
|
||||
*/
|
||||
if (EffectiveVolumePkcs5 == 0)
|
||||
EffectiveVolumePkcs5 = DefaultVolumePkcs5;
|
||||
if (!EffectiveVolumeTrueCryptMode)
|
||||
EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
|
||||
|
||||
VolumePassword.Length = 0;
|
||||
mountOptions = defaultMountOptions;
|
||||
@@ -5759,18 +5629,15 @@ static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
if (!CmdVolumePasswordValid && bPasswordPrompt)
|
||||
{
|
||||
int GuiPkcs5 = EffectiveVolumePkcs5;
|
||||
BOOL GuiTrueCryptMode = EffectiveVolumeTrueCryptMode;
|
||||
int GuiPim = CmdVolumePim;
|
||||
PasswordDlgVolume[0] = '\0';
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, &GuiTrueCryptMode, NULL, TRUE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, NULL, TRUE))
|
||||
goto ret;
|
||||
else
|
||||
{
|
||||
VolumePkcs5 = GuiPkcs5;
|
||||
VolumeTrueCryptMode = GuiTrueCryptMode;
|
||||
VolumePim = GuiPim;
|
||||
burn (&GuiPkcs5, sizeof(GuiPkcs5));
|
||||
burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
|
||||
burn (&GuiPim, sizeof(GuiPim));
|
||||
}
|
||||
}
|
||||
@@ -5779,7 +5646,6 @@ static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
bPasswordPrompt = FALSE;
|
||||
VolumePassword = CmdVolumePassword;
|
||||
VolumePkcs5 = EffectiveVolumePkcs5;
|
||||
VolumeTrueCryptMode = EffectiveVolumeTrueCryptMode;
|
||||
VolumePim = CmdVolumePim;
|
||||
}
|
||||
|
||||
@@ -5863,8 +5729,8 @@ static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
}
|
||||
|
||||
// First try user password then cached passwords
|
||||
if ((mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumePim, VolumeTrueCryptMode, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, TRUE, FALSE)) > 0
|
||||
|| ((VolumePassword.Length > 0) && ((mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, VolumePkcs5, VolumePim, VolumeTrueCryptMode, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, TRUE, FALSE)) > 0)))
|
||||
if ((mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, TRUE, FALSE)) > 0
|
||||
|| ((VolumePassword.Length > 0) && ((mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, VolumePkcs5, VolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, TRUE, FALSE)) > 0)))
|
||||
{
|
||||
// A volume has been successfully mounted
|
||||
|
||||
@@ -5943,7 +5809,6 @@ static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
{
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
@@ -5974,7 +5839,6 @@ ret:
|
||||
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
@@ -7318,7 +7182,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
{
|
||||
BOOL mounted = FALSE;
|
||||
int EffectiveVolumePkcs5 = CmdVolumePkcs5;
|
||||
BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
|
||||
BOOL bEffectiveTryEmptyPasswordWhenKeyfileUsed = bCmdTryEmptyPasswordWhenKeyfileUsedValid? bCmdTryEmptyPasswordWhenKeyfileUsed : bTryEmptyPasswordWhenKeyfileUsed;
|
||||
|
||||
if (!VolumePathExists (szFileName))
|
||||
@@ -7332,8 +7195,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
*/
|
||||
if (EffectiveVolumePkcs5 == 0)
|
||||
EffectiveVolumePkcs5 = DefaultVolumePkcs5;
|
||||
if (!EffectiveVolumeTrueCryptMode)
|
||||
EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
|
||||
|
||||
// Command line password or keyfiles
|
||||
if (CmdVolumePassword.Length != 0 || (FirstCmdKeyFile && (CmdVolumePasswordValid || bEffectiveTryEmptyPasswordWhenKeyfileUsed)))
|
||||
@@ -7344,7 +7205,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
KeyFilesApply (hwndDlg, &CmdVolumePassword, FirstCmdKeyFile, szFileName);
|
||||
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - L'A',
|
||||
szFileName, &CmdVolumePassword, EffectiveVolumePkcs5, CmdVolumePim, EffectiveVolumeTrueCryptMode, bCacheInDriver, bIncludePimInCache, bForceMount,
|
||||
szFileName, &CmdVolumePassword, EffectiveVolumePkcs5, CmdVolumePim, bCacheInDriver, bIncludePimInCache, bForceMount,
|
||||
&mountOptions, Silent, reportBadPasswd);
|
||||
|
||||
burn (&CmdVolumePassword, sizeof (CmdVolumePassword));
|
||||
@@ -7352,7 +7213,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
else
|
||||
{
|
||||
// Cached password
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - L'A', szFileName, NULL, EffectiveVolumePkcs5, CmdVolumePim, EffectiveVolumeTrueCryptMode, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - L'A', szFileName, NULL, EffectiveVolumePkcs5, CmdVolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, Silent, FALSE);
|
||||
}
|
||||
|
||||
if (FirstCmdKeyFile)
|
||||
@@ -7367,20 +7228,17 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
{
|
||||
int GuiPkcs5 = EffectiveVolumePkcs5;
|
||||
int GuiPim = CmdVolumePim;
|
||||
BOOL GuiTrueCryptMode = EffectiveVolumeTrueCryptMode;
|
||||
VolumePassword.Length = 0;
|
||||
|
||||
StringCbCopyW (PasswordDlgVolume, sizeof(PasswordDlgVolume),szFileName);
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, &GuiTrueCryptMode, NULL, TRUE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, NULL, TRUE))
|
||||
break;
|
||||
else
|
||||
{
|
||||
VolumePkcs5 = GuiPkcs5;
|
||||
VolumePim = GuiPim;
|
||||
VolumeTrueCryptMode = GuiTrueCryptMode;
|
||||
burn (&GuiPkcs5, sizeof(GuiPkcs5));
|
||||
burn (&GuiPim, sizeof(GuiPim));
|
||||
burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
|
||||
}
|
||||
|
||||
WaitCursor ();
|
||||
@@ -7388,12 +7246,11 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||
if (KeyFilesEnable && FirstKeyFile)
|
||||
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile, szFileName);
|
||||
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - L'A', szFileName, &VolumePassword, VolumePkcs5, VolumePim, VolumeTrueCryptMode, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, FALSE, TRUE);
|
||||
mounted = MountVolume (hwndDlg, szDriveLetter[0] - L'A', szFileName, &VolumePassword, VolumePkcs5, VolumePim, bCacheInDriver, bIncludePimInCache, bForceMount, &mountOptions, FALSE, TRUE);
|
||||
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
|
||||
burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
|
||||
|
||||
@@ -9268,7 +9125,6 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
|
||||
OptionVolume,
|
||||
CommandWipeCache,
|
||||
OptionPkcs5,
|
||||
OptionTrueCryptMode,
|
||||
OptionPim,
|
||||
OptionTryEmptyPassword,
|
||||
OptionNoWaitDlg,
|
||||
@@ -9298,7 +9154,6 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
|
||||
{ OptionSilent, L"/silent", L"/s", FALSE },
|
||||
{ OptionTokenLib, L"/tokenlib", NULL, FALSE },
|
||||
{ OptionTokenPin, L"/tokenpin", NULL, FALSE },
|
||||
{ OptionTrueCryptMode, L"/truecrypt", L"/tc", FALSE },
|
||||
{ OptionVolume, L"/volume", L"/v", FALSE },
|
||||
{ CommandWipeCache, L"/wipecache", L"/w", FALSE },
|
||||
{ OptionTryEmptyPassword, L"/tryemptypass", NULL, FALSE },
|
||||
@@ -9727,10 +9582,6 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
|
||||
}
|
||||
break;
|
||||
|
||||
case OptionTrueCryptMode:
|
||||
CmdVolumeTrueCryptMode = TRUE;
|
||||
break;
|
||||
|
||||
// no option = file name if there is only one argument
|
||||
default:
|
||||
{
|
||||
@@ -9749,9 +9600,9 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
|
||||
}
|
||||
}
|
||||
|
||||
if (CmdVolumePasswordValid && (CmdVolumeTrueCryptMode || (CmdMountOptionsValid && bPrebootPasswordDlgMode)))
|
||||
if (CmdVolumePasswordValid && CmdMountOptionsValid && bPrebootPasswordDlgMode)
|
||||
{
|
||||
/* truncate the password to 64 first characer in case of TrueCrypt Mode or System Encryption */
|
||||
/* truncate the password to 64 first characer in case of System Encryption */
|
||||
if (lstrlen (CmdRawPassword) > MAX_LEGACY_PASSWORD)
|
||||
{
|
||||
int iLen;
|
||||
@@ -10431,7 +10282,7 @@ static BOOL MountFavoriteVolumeBase (HWND hwnd, const FavoriteVolume &favorite,
|
||||
if (ServiceMode)
|
||||
SystemFavoritesServiceLogInfo (wstring (L"Mounting system favorite \"") + effectiveVolumePath + L"\"");
|
||||
|
||||
status = Mount (hwnd, drive, (wchar_t *) effectiveVolumePath.c_str(), favorite.Pim, favorite.Pkcs5, favorite.TrueCryptMode);
|
||||
status = Mount (hwnd, drive, (wchar_t *) effectiveVolumePath.c_str(), favorite.Pim, favorite.Pkcs5);
|
||||
|
||||
if (ServiceMode)
|
||||
{
|
||||
@@ -10649,7 +10500,6 @@ BOOL MountFavoriteVolumes (HWND hwnd, BOOL systemFavorites, BOOL logOnMount, BOO
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
|
||||
if (bRet && CloseSecurityTokenSessionsAfterMount)
|
||||
SecurityToken::CloseAllSessions(); // TODO Use Token
|
||||
@@ -10922,7 +10772,7 @@ int BackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, const wchar_t *
|
||||
{
|
||||
int GuiPkcs5 = ((EffectiveVolumePkcs5 > 0) && (*askPkcs5 == 0))? EffectiveVolumePkcs5 : *askPkcs5;
|
||||
int GuiPim = ((EffectiveVolumePim > 0) && (*askPim <= 0))? EffectiveVolumePim : *askPim;
|
||||
if (!AskVolumePassword (hwndDlg, askPassword, &GuiPkcs5, &GuiPim, &VolumeTrueCryptMode, type == TC_VOLUME_TYPE_HIDDEN ? "ENTER_HIDDEN_VOL_PASSWORD" : "ENTER_NORMAL_VOL_PASSWORD", FALSE))
|
||||
if (!AskVolumePassword (hwndDlg, askPassword, &GuiPkcs5, &GuiPim, type == TC_VOLUME_TYPE_HIDDEN ? "ENTER_HIDDEN_VOL_PASSWORD" : "ENTER_NORMAL_VOL_PASSWORD", FALSE))
|
||||
{
|
||||
nStatus = ERR_SUCCESS;
|
||||
goto ret;
|
||||
@@ -10940,7 +10790,7 @@ int BackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, const wchar_t *
|
||||
if (KeyFilesEnable && FirstKeyFile)
|
||||
KeyFilesApply (hwndDlg, askPassword, FirstKeyFile, lpszVolume);
|
||||
|
||||
nStatus = OpenVolume (askVol, lpszVolume, askPassword, *askPkcs5, *askPim, VolumeTrueCryptMode, FALSE, bPreserveTimestamp, FALSE);
|
||||
nStatus = OpenVolume (askVol, lpszVolume, askPassword, *askPkcs5, *askPim, FALSE, bPreserveTimestamp, FALSE);
|
||||
|
||||
NormalCursor();
|
||||
|
||||
@@ -11098,7 +10948,6 @@ error:
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
burn (&hiddenVolPassword, sizeof (hiddenVolPassword));
|
||||
burn (temporaryKey, sizeof (temporaryKey));
|
||||
burn (originalK2, sizeof (originalK2));
|
||||
@@ -11210,7 +11059,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *lpszVolume)
|
||||
int GuiPkcs5 = ((EffectiveVolumePkcs5 > 0) && (VolumePkcs5 == 0))? EffectiveVolumePkcs5 : VolumePkcs5;
|
||||
int GuiPim = ((EffectiveVolumePim > 0) && (VolumePim <= 0))? EffectiveVolumePim : VolumePim;
|
||||
StringCbCopyW (PasswordDlgVolume, sizeof(PasswordDlgVolume), lpszVolume);
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, &VolumeTrueCryptMode, NULL, FALSE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, NULL, FALSE))
|
||||
{
|
||||
nStatus = ERR_SUCCESS;
|
||||
goto ret;
|
||||
@@ -11228,7 +11077,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *lpszVolume)
|
||||
if (KeyFilesEnable && FirstKeyFile)
|
||||
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile, lpszVolume);
|
||||
|
||||
nStatus = OpenVolume (&volume, lpszVolume, &VolumePassword, VolumePkcs5, VolumePim, VolumeTrueCryptMode,TRUE, bPreserveTimestamp, TRUE);
|
||||
nStatus = OpenVolume (&volume, lpszVolume, &VolumePassword, VolumePkcs5, VolumePim,TRUE, bPreserveTimestamp, TRUE);
|
||||
|
||||
NormalCursor();
|
||||
|
||||
@@ -11451,7 +11300,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *lpszVolume)
|
||||
{
|
||||
int GuiPkcs5 = ((EffectiveVolumePkcs5 > 0) && (VolumePkcs5 == 0))? EffectiveVolumePkcs5 : VolumePkcs5;
|
||||
int GuiPim = ((EffectiveVolumePim > 0) && (VolumePim <= 0))? EffectiveVolumePim : VolumePim;
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, &VolumeTrueCryptMode, "ENTER_HEADER_BACKUP_PASSWORD", FALSE))
|
||||
if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiPim, "ENTER_HEADER_BACKUP_PASSWORD", FALSE))
|
||||
{
|
||||
nStatus = ERR_SUCCESS;
|
||||
goto ret;
|
||||
@@ -11474,7 +11323,7 @@ int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *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, VolumePim, VolumeTrueCryptMode, &restoredCryptoInfo, NULL);
|
||||
nStatus = ReadVolumeHeader (FALSE, buffer + headerOffsetBackupFile, &VolumePassword, VolumePkcs5, VolumePim, &restoredCryptoInfo, NULL);
|
||||
if (nStatus == ERR_SUCCESS)
|
||||
break;
|
||||
}
|
||||
@@ -11580,7 +11429,6 @@ error:
|
||||
burn (&VolumePassword, sizeof (VolumePassword));
|
||||
burn (&VolumePkcs5, sizeof (VolumePkcs5));
|
||||
burn (&VolumePim, sizeof (VolumePim));
|
||||
burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
|
||||
RestoreDefaultKeyFilesParam();
|
||||
RandStop (FALSE);
|
||||
NormalCursor();
|
||||
@@ -12046,9 +11894,6 @@ static BOOL CALLBACK DefaultMountParametersDlgProc (HWND hwndDlg, UINT msg, WPAR
|
||||
{
|
||||
LocalizeDialog (hwndDlg, "IDD_DEFAULT_MOUNT_PARAMETERS");
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), BM_SETCHECK,
|
||||
DefaultVolumeTrueCryptMode ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
/* Populate the PRF algorithms list */
|
||||
int i, nIndex, defaultPrfIndex = 0;
|
||||
HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
|
||||
@@ -12082,25 +11927,14 @@ static BOOL CALLBACK DefaultMountParametersDlgProc (HWND hwndDlg, UINT msg, WPAR
|
||||
case IDOK:
|
||||
{
|
||||
int pkcs5 = (int) 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);
|
||||
/* check that PRF is supported in TrueCrypt Mode */
|
||||
if ( (truecryptMode)
|
||||
&& (!is_pkcs5_prf_supported(pkcs5, TRUE, PRF_BOOT_NO))
|
||||
)
|
||||
{
|
||||
Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
|
||||
}
|
||||
else
|
||||
{
|
||||
WaitCursor ();
|
||||
DefaultVolumeTrueCryptMode = truecryptMode;
|
||||
DefaultVolumePkcs5 = pkcs5;
|
||||
|
||||
SaveSettings (hwndDlg);
|
||||
WaitCursor ();
|
||||
DefaultVolumePkcs5 = pkcs5;
|
||||
|
||||
NormalCursor ();
|
||||
EndDialog (hwndDlg, lw);
|
||||
}
|
||||
SaveSettings (hwndDlg);
|
||||
|
||||
NormalCursor ();
|
||||
EndDialog (hwndDlg, lw);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user