mirror of
https://github.com/veracrypt/VeraCrypt
synced 2024-11-27 21:43:29 +01:00
Windows: Block upgrade of VeraCrypt is the system is encrypted using RIPEMD-160 or GOST89 since they are not supported anymore.
This commit is contained in:
parent
dd0f3cd167
commit
5383190518
@ -5832,4 +5832,32 @@ namespace VeraCrypt
|
||||
{
|
||||
return (::RestartComputer(bShutdown) != FALSE);
|
||||
}
|
||||
|
||||
bool BootEncryption::IsUsingUnsupportedAlgorithm(LONG driverVersion)
|
||||
{
|
||||
bool bRet = false;
|
||||
|
||||
try
|
||||
{
|
||||
if (driverVersion <= 0x125)
|
||||
{
|
||||
// version 1.25 is last version to support RIPEMD160 and GOST89
|
||||
static int GOST89_EA = 5;
|
||||
static int RIPEMD160_PRF = 4;
|
||||
|
||||
VOLUME_PROPERTIES_STRUCT props = {0};
|
||||
GetVolumeProperties(&props);
|
||||
|
||||
//
|
||||
if (props.ea == GOST89_EA || props.pkcs5 == RIPEMD160_PRF)
|
||||
bRet = true;
|
||||
}
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return bRet;
|
||||
}
|
||||
}
|
||||
|
@ -313,6 +313,7 @@ namespace VeraCrypt
|
||||
void RestoreSystemLoader ();
|
||||
static void UpdateSetupConfigFile (bool bForInstall);
|
||||
void GetSecureBootConfig (BOOL* pSecureBootEnabled, BOOL *pVeraCryptKeysLoaded);
|
||||
bool IsUsingUnsupportedAlgorithm(LONG driverVersion);
|
||||
protected:
|
||||
static const uint32 RescueIsoImageSize = 1835008; // Size of ISO9660 image with bootable emulated 1.44MB floppy disk image
|
||||
|
||||
|
@ -1567,6 +1567,7 @@
|
||||
<entry lang="en" key="VOLUME_HOST_IN_USE">WARNING: The host file/device {0} is already in use!\n\nIgnoring this can cause undesired results including system instability. All applications that might be using the host file/device should be closed before mounting the volume.\n\nContinue mounting?</entry>
|
||||
<entry lang="en" key="CANT_INSTALL_WITH_EXE_OVER_MSI">VeraCrypt was previously installed using an MSI package and so it can't be updated using the standard installer.\n\nPlease use the MSI package to update your VeraCrypt installation.</entry>
|
||||
<entry lang="en" key="IDC_USE_ALL_FREE_SPACE">Use all available free space</entry>
|
||||
<entry lang="en" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ALGORITHM">VeraCrypt cannot be upgraded because the system partition/drive was encrypted using an algorithm that is not supported anymore.\nPlease decrypt your system before upgrading VeraCrypt and then encrypt it again.</entry>
|
||||
</localization>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="VeraCrypt">
|
||||
|
@ -1726,6 +1726,10 @@ BOOL DoDriverUnload (HWND hwndDlg)
|
||||
if (CurrentOSMajor == 6 && CurrentOSMinor == 0 && CurrentOSServicePack < 1)
|
||||
AbortProcess ("SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0");
|
||||
|
||||
// check if we are upgrading a system encrypted with unsupported algorithms
|
||||
if (bootEnc.IsUsingUnsupportedAlgorithm(driverVersion))
|
||||
AbortProcess ("SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ALGORITHM");
|
||||
|
||||
SystemEncryptionUpdate = TRUE;
|
||||
PortableMode = FALSE;
|
||||
}
|
||||
|
@ -1560,6 +1560,14 @@ BOOL DoDriverUnload_Dll (MSIHANDLE hInstaller, HWND hwnd)
|
||||
goto end;
|
||||
}
|
||||
|
||||
// check if we are upgrading a system encrypted with unsupported algorithms
|
||||
if (bootEnc.IsUsingUnsupportedAlgorithm(driverVersion))
|
||||
{
|
||||
MSILogAndShow(hInstaller, MSI_ERROR_LEVEL, GetString("SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ALGORITHM"));
|
||||
bOK = FALSE;
|
||||
goto end;
|
||||
}
|
||||
|
||||
SystemEncryptionUpdate = TRUE;
|
||||
PortableMode = FALSE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user