1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 11:08:02 -06:00

Windows: Disable button for EFI PlatformInfo if the file is missing

This commit is contained in:
Mounir IDRASSI
2017-06-09 12:34:41 +02:00
parent 3764f7e8b9
commit 767f513752

View File

@@ -11023,6 +11023,7 @@ void SecurityTokenPreferencesDialog (HWND hwndDlg)
static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{ {
WORD lw = LOWORD (wParam); WORD lw = LOWORD (wParam);
static std::string platforminfo;
switch (msg) switch (msg)
{ {
@@ -11059,6 +11060,35 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
if (bSystemIsGPT) if (bSystemIsGPT)
{ {
CheckDlgButton (hwndDlg, IDC_DISABLE_BOOT_LOADER_HASH_PROMPT, (userConfig & TC_BOOT_USER_CFG_FLAG_STORE_HASH) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton (hwndDlg, IDC_DISABLE_BOOT_LOADER_HASH_PROMPT, (userConfig & TC_BOOT_USER_CFG_FLAG_STORE_HASH) ? BST_CHECKED : BST_UNCHECKED);
// read PlatformInfo file if it exists
try
{
ByteArray fileContent;
DWORD sz, offset;
std::wstring path;
GetVolumeESP(path);
path += L"\\EFI\\VeraCrypt\\PlatformInfo";
File fPlatformInfo(path);
fPlatformInfo.GetFileSize(sz);
fileContent.resize(sz + 1);
fileContent[sz] = 0;
fPlatformInfo.Read((byte*)&fileContent[0], sz);
// remove UTF-8 BOM if any
if (0 == memcmp (fileContent.data(), "\xEF\xBB\xBF", 3))
{
offset = 3;
}
else
offset = 0;
platforminfo = (const char*) &fileContent[offset];
}
catch (Exception &e) {}
if (platforminfo.length() == 0)
{
// could not read PlatformInfo file. Disable corresponding button in UI
EnableWindow (GetDlgItem (hwndDlg, IDC_SHOW_PLATFORMINFO), FALSE);
}
} }
else else
{ {
@@ -11092,32 +11122,7 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
EndDialog (hwndDlg, lw); EndDialog (hwndDlg, lw);
return 1; return 1;
case IDC_SHOW_PLATFORMINFO: case IDC_SHOW_PLATFORMINFO:
{ TextEditDialogBox(TRUE, hwndDlg, GetString ("EFI_PLATFORM_INFORMATION"), platforminfo);
try
{
std::string platforminfo;
ByteArray fileContent;
DWORD sz, offset;
std::wstring path;
GetVolumeESP(path);
path += L"\\EFI\\VeraCrypt\\PlatformInfo";
File fPlatformInfo(path);
fPlatformInfo.GetFileSize(sz);
fileContent.resize(sz + 1);
fileContent[sz] = 0;
fPlatformInfo.Read((byte*)&fileContent[0], sz);
// remove UTF-8 BOM if any
if (0 == memcmp (fileContent.data(), "\xEF\xBB\xBF", 3))
{
offset = 3;
}
else
offset = 0;
platforminfo = (const char*) &fileContent[offset];
TextEditDialogBox(TRUE, hwndDlg, GetString ("EFI_PLATFORM_INFORMATION"), platforminfo);
}
catch (Exception &e) { e.Show(hwndDlg); }
}
return 0; return 0;
case IDC_EDIT_DCSPROP: case IDC_EDIT_DCSPROP: