mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 02:58:02 -06:00
Refactor: Use symbolic constants for volume header magic numbers (#1525)
Replaced hardcoded 0x56455241 ('VERA') with TC_HEADER_MAGIC for better readability and maintainability.
Also replaced 0x5645524142455854 with TC_BOOT_DRIVE_FILTER_EXTENSION_MAGIC and added 'ULL' suffix for 64-bit safety.
This commit is contained in:
committed by
GitHub
parent
1f4f6d09d8
commit
5eb358ca18
@@ -4322,7 +4322,7 @@ namespace VeraCrypt
|
|||||||
|
|
||||||
DecryptBuffer (RescueVolumeHeader + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
|
DecryptBuffer (RescueVolumeHeader + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
|
||||||
|
|
||||||
if (GetHeaderField32 (RescueVolumeHeader, TC_HEADER_OFFSET_MAGIC) != 0x56455241)
|
if (GetHeaderField32 (RescueVolumeHeader, TC_HEADER_OFFSET_MAGIC) != TC_HEADER_MAGIC_NUMBER)
|
||||||
throw ParameterIncorrect (SRC_POS);
|
throw ParameterIncorrect (SRC_POS);
|
||||||
|
|
||||||
uint8 *fieldPos = RescueVolumeHeader + TC_HEADER_OFFSET_ENCRYPTED_AREA_LENGTH;
|
uint8 *fieldPos = RescueVolumeHeader + TC_HEADER_OFFSET_ENCRYPTED_AREA_LENGTH;
|
||||||
|
|||||||
@@ -457,8 +457,8 @@ KeyReady: ;
|
|||||||
|
|
||||||
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
|
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
|
||||||
|
|
||||||
// Magic 'VERA'
|
// Magic number
|
||||||
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != 0x56455241)
|
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != TC_HEADER_MAGIC_NUMBER)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Header version
|
// Header version
|
||||||
@@ -768,7 +768,7 @@ int ReadVolumeHeader (BOOL bBoot, unsigned char *header, Password *password, int
|
|||||||
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
|
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
|
||||||
|
|
||||||
// Check magic 'VERA' and CRC-32 of header fields and master keydata
|
// Check magic 'VERA' and CRC-32 of header fields and master keydata
|
||||||
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != 0x56455241
|
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != TC_HEADER_MAGIC_NUMBER
|
||||||
|| (GetHeaderField16 (header, TC_HEADER_OFFSET_VERSION) >= 4 && GetHeaderField32 (header, TC_HEADER_OFFSET_HEADER_CRC) != GetCrc32 (header + TC_HEADER_OFFSET_MAGIC, TC_HEADER_OFFSET_HEADER_CRC - TC_HEADER_OFFSET_MAGIC))
|
|| (GetHeaderField16 (header, TC_HEADER_OFFSET_VERSION) >= 4 && GetHeaderField32 (header, TC_HEADER_OFFSET_HEADER_CRC) != GetCrc32 (header + TC_HEADER_OFFSET_MAGIC, TC_HEADER_OFFSET_HEADER_CRC - TC_HEADER_OFFSET_MAGIC))
|
||||||
|| GetHeaderField32 (header, TC_HEADER_OFFSET_KEY_AREA_CRC) != GetCrc32 (header + HEADER_MASTER_KEYDATA_OFFSET, MASTER_KEYDATA_SIZE))
|
|| GetHeaderField32 (header, TC_HEADER_OFFSET_KEY_AREA_CRC) != GetCrc32 (header + HEADER_MASTER_KEYDATA_OFFSET, MASTER_KEYDATA_SIZE))
|
||||||
{
|
{
|
||||||
@@ -1040,8 +1040,8 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, unsigned char *header,
|
|||||||
// Salt
|
// Salt
|
||||||
mputBytes (p, keyInfo.salt, PKCS5_SALT_SIZE);
|
mputBytes (p, keyInfo.salt, PKCS5_SALT_SIZE);
|
||||||
|
|
||||||
// Magic
|
// Magic number
|
||||||
mputLong (p, 0x56455241);
|
mputLong (p, TC_HEADER_MAGIC_NUMBER);
|
||||||
|
|
||||||
// Header version
|
// Header version
|
||||||
mputWord (p, VOLUME_HEADER_VERSION);
|
mputWord (p, VOLUME_HEADER_VERSION);
|
||||||
|
|||||||
@@ -21,6 +21,12 @@ extern "C" {
|
|||||||
// Volume header version
|
// Volume header version
|
||||||
#define VOLUME_HEADER_VERSION 0x0005
|
#define VOLUME_HEADER_VERSION 0x0005
|
||||||
|
|
||||||
|
// Volume header magic identifiers
|
||||||
|
// 32-bit magic number identifying a valid VeraCrypt volume header ("VERA" in ASCII)
|
||||||
|
#define TC_HEADER_MAGIC_NUMBER 0x56455241
|
||||||
|
// 64-bit magic number identifier for boot drive filter extension ("VERABEXT" in ASCII)
|
||||||
|
#define TC_BOOT_DRIVE_FILTER_EXTENSION_MAGIC_NUMBER 0x5645524142455854ULL
|
||||||
|
|
||||||
// Version number written to volume header during format;
|
// Version number written to volume header during format;
|
||||||
// specifies the minimum program version required to mount the volume
|
// specifies the minimum program version required to mount the volume
|
||||||
#define TC_VOLUME_MIN_REQUIRED_PROGRAM_VERSION 0x010b
|
#define TC_VOLUME_MIN_REQUIRED_PROGRAM_VERSION 0x010b
|
||||||
|
|||||||
@@ -730,7 +730,7 @@ static NTSTATUS SaveDriveVolumeHeader (DriveFilterExtension *Extension)
|
|||||||
|
|
||||||
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, pCryptoInfo);
|
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, pCryptoInfo);
|
||||||
|
|
||||||
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != 0x56455241)
|
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != TC_HEADER_MAGIC_NUMBER)
|
||||||
{
|
{
|
||||||
Dump ("Header not decrypted");
|
Dump ("Header not decrypted");
|
||||||
status = STATUS_UNKNOWN_REVISION;
|
status = STATUS_UNKNOWN_REVISION;
|
||||||
|
|||||||
@@ -49,8 +49,6 @@ typedef struct _DriveFilterExtension
|
|||||||
|
|
||||||
} DriveFilterExtension;
|
} DriveFilterExtension;
|
||||||
|
|
||||||
#define TC_BOOT_DRIVE_FILTER_EXTENSION_MAGIC_NUMBER 0x5645524142455854
|
|
||||||
|
|
||||||
extern BOOL BootArgsValid;
|
extern BOOL BootArgsValid;
|
||||||
extern BootArguments BootArgs;
|
extern BootArguments BootArgs;
|
||||||
extern PKTHREAD EncryptionSetupThread;
|
extern PKTHREAD EncryptionSetupThread;
|
||||||
|
|||||||
@@ -1870,7 +1870,7 @@ int FastVolumeHeaderUpdate (HANDLE dev, CRYPTO_INFO *headerCryptoInfo, CRYPTO_IN
|
|||||||
|
|
||||||
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, pCryptoInfo);
|
DecryptBuffer (header + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, pCryptoInfo);
|
||||||
|
|
||||||
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != 0x56455241)
|
if (GetHeaderField32 (header, TC_HEADER_OFFSET_MAGIC) != TC_HEADER_MAGIC_NUMBER)
|
||||||
{
|
{
|
||||||
nStatus = ERR_PARAMETER_INCORRECT;
|
nStatus = ERR_PARAMETER_INCORRECT;
|
||||||
goto closing_seq;
|
goto closing_seq;
|
||||||
|
|||||||
Reference in New Issue
Block a user