Implement detection of volumes with vulnerable XTS master key.

If vulnerability detected, a warning message is displayed during mount or backup/restore header, and changing the password is disallowed since it will not change the master key.
This commit is contained in:
Mounir IDRASSI committed 2024-08-02 00:20:53 +02:00
1 parent 6121ca0239
commit ed1263bf8c
24 files changed
+186 -7

No files matched your search

+14
View File
@@ -5577,6 +5577,14 @@ void handleError (HWND hwndDlg, int code, const char* srcPos)
break;
#endif
case ERR_XTS_MASTERKEY_VULNERABLE:
MessageBoxW (hwndDlg, AppendSrcPos (GetString ("ERR_XTS_MASTERKEY_VULNERABLE"), srcPos).c_str(), lpszTitle, ICON_HAND);
break;
case ERR_SYSENC_XTS_MASTERKEY_VULNERABLE:
MessageBoxW (hwndDlg, AppendSrcPos (GetString ("ERR_SYSENC_XTS_MASTERKEY_VULNERABLE"), srcPos).c_str(), lpszTitle, ICON_HAND);
break;
default:
StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("ERR_UNKNOWN"), code);
MessageBoxW (hwndDlg, AppendSrcPos (szTmp, srcPos).c_str(), lpszTitle, ICON_HAND);
@@ -8953,6 +8961,12 @@ retry:
LastMountedVolumeDirty = mount.FilesystemDirty;
if (mount.VolumeMasterKeyVulnerable
&& !Silent)
{
Warning ("ERR_XTS_MASTERKEY_VULNERABLE", hwndDlg);
}
if (mount.FilesystemDirty)
{
wchar_t msg[1024];