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 /src | |
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.
Diffstat (limited to 'src')
-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, |