mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-12 03:18:26 -06:00
Windows/Linux/MacOSX: Set maximum PIM value to 2147468 in order to avoid having negative values for iterations count using the formula 15000 + (PIM x 1000). Add specific error message to XML language files.
This commit is contained in:
@@ -383,6 +383,20 @@ namespace VeraCrypt
|
||||
case IDC_SHOW_PIM:
|
||||
HandleShowPasswordFieldAction (hwndDlg, IDC_SHOW_PIM, IDC_PIM, 0);
|
||||
return 1;
|
||||
|
||||
case IDC_PIM:
|
||||
if (hw == EN_CHANGE)
|
||||
{
|
||||
int pim = GetPim (hwndDlg, IDC_PIM);
|
||||
if (pim > (SystemFavoritesMode? MAX_BOOT_PIM_VALUE: MAX_PIM_VALUE))
|
||||
{
|
||||
SetDlgItemText (hwndDlg, IDC_PIM, L"");
|
||||
SetFocus (GetDlgItem(hwndDlg, IDC_PIM));
|
||||
Warning (SystemFavoritesMode? "PIM_SYSENC_TOO_BIG": "PIM_TOO_BIG", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -601,7 +615,7 @@ namespace VeraCrypt
|
||||
XmlGetAttributeText (xml, "pin", label, sizeof (label));
|
||||
}
|
||||
favorite.Pim = strtol (label, NULL, 10);
|
||||
if (favorite.Pim < 0)
|
||||
if (favorite.Pim < 0 || favorite.Pim > (systemFavorite? MAX_BOOT_PIM_VALUE : MAX_PIM_VALUE))
|
||||
favorite.Pim = 0;
|
||||
|
||||
char boolVal[2];
|
||||
|
||||
@@ -2506,6 +2506,13 @@ BOOL CALLBACK PasswordChangeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!bSysEncPwdChangeDlgMode && (pim > MAX_PIM_VALUE))
|
||||
{
|
||||
SetFocus (GetDlgItem(hwndDlg, IDC_PIM));
|
||||
Error ("PIM_TOO_BIG", hwndDlg);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (pwdChangeDlgMode == PCDM_CHANGE_PKCS5_PRF)
|
||||
{
|
||||
newKeyFilesParam.EnableKeyFiles = KeyFilesEnable;
|
||||
@@ -8712,7 +8719,7 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
|
||||
{
|
||||
wchar_t* endPtr = NULL;
|
||||
CmdVolumePim = (int) wcstol(szTmp, &endPtr, 0);
|
||||
if (CmdVolumePim < 0 || endPtr == szTmp || *endPtr != L'\0')
|
||||
if (CmdVolumePim < 0 || CmdVolumePim > MAX_PIM_VALUE || endPtr == szTmp || *endPtr != L'\0')
|
||||
{
|
||||
CmdVolumePim = 0;
|
||||
AbortProcess ("COMMAND_LINE_ERROR");
|
||||
|
||||
Reference in New Issue
Block a user