diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2020-06-20 15:10:28 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2020-06-21 00:27:15 +0200 |
commit | 0121dc0b81722ac07abac27d8215c524260bb3f2 (patch) | |
tree | f24b4f2b1fe5eac91bcbf684a1520c570baa5ebb | |
parent | d031addc2cfe93c40b4b7a7a20be31a86c39033f (diff) | |
download | VeraCrypt-0121dc0b81722ac07abac27d8215c524260bb3f2.tar.gz VeraCrypt-0121dc0b81722ac07abac27d8215c524260bb3f2.zip |
Windows: Fix issue when RAM encryption used, AES selected and AES-NI not supported by CPU that caused the free space of newly created volumes not filled with random data even if "quick format" is not selected by user.
-rw-r--r-- | src/Common/Fat.c | 5 | ||||
-rw-r--r-- | src/Common/Format.c | 5 | ||||
-rw-r--r-- | src/Driver/DriveFilter.c | 5 | ||||
-rw-r--r-- | src/ExpandVolume/InitDataArea.c | 5 |
4 files changed, 20 insertions, 0 deletions
diff --git a/src/Common/Fat.c b/src/Common/Fat.c index 8d4cc7d8..cd2c124f 100644 --- a/src/Common/Fat.c +++ b/src/Common/Fat.c @@ -442,6 +442,11 @@ FormatFat (void* hwndDlgPtr, unsigned __int64 startSector, fatparams * ft, void return ERR_MODE_INIT_FAILED; } +#ifdef _WIN64 + if (IsRamEncryptionEnabled ()) + VcProtectKeys (cryptoInfo, VcGetEncryptionID (cryptoInfo)); +#endif + x = ft->num_sectors - ft->reserved - ft->size_root_dir / ft->sector_size - ft->fat_length * 2; while (x--) { diff --git a/src/Common/Format.c b/src/Common/Format.c index 1edbdf96..b6ef3199 100644 --- a/src/Common/Format.c +++ b/src/Common/Format.c @@ -898,6 +898,11 @@ int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors, goto fail; } +#ifdef _WIN64 + if (IsRamEncryptionEnabled ()) + VcProtectKeys (cryptoInfo, VcGetEncryptionID (cryptoInfo)); +#endif + while (num_sectors--) { if (WriteSector (dev, sector, write_buf, &write_buf_cnt, &nSecNo, diff --git a/src/Driver/DriveFilter.c b/src/Driver/DriveFilter.c index 3813992d..f89e6e9a 100644 --- a/src/Driver/DriveFilter.c +++ b/src/Driver/DriveFilter.c @@ -2234,6 +2234,11 @@ static VOID DecoySystemWipeThreadProc (PVOID threadArg) goto err; } +#ifdef _WIN64 + if (IsRamEncryptionEnabled ()) + VcProtectKeys (wipeCryptoInfo, VcGetEncryptionID (wipeCryptoInfo)); +#endif + EncryptDataUnits (wipeRandBuffer, &dataUnit, wipeBlockSize / ENCRYPTION_DATA_UNIT_SIZE, wipeCryptoInfo); memcpy (wipeRandChars, wipeRandBuffer, sizeof (wipeRandChars)); diff --git a/src/ExpandVolume/InitDataArea.c b/src/ExpandVolume/InitDataArea.c index 618358d1..709f44b9 100644 --- a/src/ExpandVolume/InitDataArea.c +++ b/src/ExpandVolume/InitDataArea.c @@ -116,6 +116,11 @@ int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors, goto fail; } +#ifdef _WIN64 + if (IsRamEncryptionEnabled ()) + VcProtectKeys (cryptoInfo, VcGetEncryptionID (cryptoInfo)); +#endif + while (num_sectors--) { if (WriteSector (dev, sector, write_buf, &write_buf_cnt, &nSecNo, |