diff options
Diffstat (limited to 'src/Format')
-rw-r--r-- | src/Format/InPlace.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/Format/InPlace.c b/src/Format/InPlace.c index d844be2c..4a16fd4f 100644 --- a/src/Format/InPlace.c +++ b/src/Format/InPlace.c @@ -774,6 +774,9 @@ int EncryptPartitionInPlaceResume (HANDLE dev, int pim = volParams->pim; DISK_GEOMETRY driveGeometry; HWND hwndDlg = volParams->hwndDlg; +#ifdef _WIN64 + BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled(); +#endif bInPlaceEncNonSysResumed = TRUE; @@ -870,7 +873,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev, goto closing_seq; #ifdef _WIN64 - if (IsRamEncryptionEnabled ()) + if (bIsRamEncryptionEnabled) { VcProtectKeys (masterCryptoInfo, VcGetEncryptionID (masterCryptoInfo)); VcProtectKeys (headerCryptoInfo, VcGetEncryptionID (headerCryptoInfo)); @@ -1100,7 +1103,7 @@ inplace_enc_read: #ifdef _WIN64 CRYPTO_INFO tmpCI; PCRYPTO_INFO cryptoInfoBackup = NULL; - if (IsRamEncryptionEnabled ()) + if (bIsRamEncryptionEnabled) { VirtualLock (&tmpCI, sizeof(tmpCI)); memcpy (&tmpCI, masterCryptoInfo, sizeof (CRYPTO_INFO)); @@ -1129,7 +1132,7 @@ inplace_enc_read: wipeAlgorithm == TC_WIPE_NONE ? FALSE : (wipePass < PRAND_HEADER_WIPE_PASSES - 1)); #ifdef _WIN64 - if (IsRamEncryptionEnabled ()) + if (bIsRamEncryptionEnabled) { masterCryptoInfo = cryptoInfoBackup; burn (&tmpCI, sizeof (CRYPTO_INFO)); @@ -1151,7 +1154,7 @@ inplace_enc_read: } #ifdef _WIN64 - if (IsRamEncryptionEnabled ()) + if (bIsRamEncryptionEnabled) { VirtualLock (&tmpCI, sizeof(tmpCI)); memcpy (&tmpCI, headerCryptoInfo, sizeof (CRYPTO_INFO)); @@ -1164,7 +1167,7 @@ inplace_enc_read: nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, headerCryptoInfo, masterCryptoInfo->VolumeSize.Value, TRUE, FALSE); #ifdef _WIN64 - if (IsRamEncryptionEnabled ()) + if (bIsRamEncryptionEnabled) { headerCryptoInfo = cryptoInfoBackup; burn (&tmpCI, sizeof (CRYPTO_INFO)); @@ -1331,6 +1334,9 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile int pkcs5_prf = volParams->pkcs5; int pim = volParams->pim; DISK_GEOMETRY driveGeometry; +#ifdef _WIN64 + BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled(); +#endif buf = (char *) TCalloc (TC_MAX_NONSYS_INPLACE_ENC_WORK_CHUNK_SIZE); @@ -1438,7 +1444,7 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile goto closing_seq; #ifdef _WIN64 - if (IsRamEncryptionEnabled ()) + if (bIsRamEncryptionEnabled) { VcProtectKeys (masterCryptoInfo, VcGetEncryptionID (masterCryptoInfo)); VcProtectKeys (headerCryptoInfo, VcGetEncryptionID (headerCryptoInfo)); @@ -1840,6 +1846,9 @@ int FastVolumeHeaderUpdate (HANDLE dev, CRYPTO_INFO *headerCryptoInfo, CRYPTO_IN uint32 headerCrc32; byte *fieldPos; PCRYPTO_INFO pCryptoInfo = headerCryptoInfo; +#ifdef _WIN64 + BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled(); +#endif header = (byte *) TCalloc (TC_VOLUME_HEADER_EFFECTIVE_SIZE); @@ -1861,7 +1870,7 @@ int FastVolumeHeaderUpdate (HANDLE dev, CRYPTO_INFO *headerCryptoInfo, CRYPTO_IN } #ifdef _WIN64 - if (IsRamEncryptionEnabled()) + if (bIsRamEncryptionEnabled) { pCryptoInfo = crypto_open(); if (!pCryptoInfo) @@ -1915,7 +1924,7 @@ closing_seq: dwError = GetLastError(); #ifdef _WIN64 - if (IsRamEncryptionEnabled() && pCryptoInfo) + if (bIsRamEncryptionEnabled && pCryptoInfo) { crypto_close(pCryptoInfo); } |