VeraCrypt
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2015-08-06Windows: Add extra checks for bootloader tampering.Mounir IDRASSI2-7/+35
2015-07-31Language files: update German XML file with anonymous contribution (Maria)Mounir IDRASSI1-17/+17
2015-07-31typo fixYan1-1/+1
2015-07-31Updated Russian translationYan1-28/+28
2015-07-30Language files: update German XML file to replace Volumen by VolumeMounir IDRASSI1-338/+338
2015-07-30Language Files: update polish translationMounir IDRASSI1-31/+32
2015-07-30Language files: Update German translation received from anonymous contributor.Mounir IDRASSI1-12/+12
2015-07-29Language files: add new field related to bootloader fingerprint checkingMounir IDRASSI37-0/+37
2015-07-29Language files: Update Polish translation received from anonymous contributor.Mounir IDRASSI1-381/+380
2015-07-29Windows: Implement Evil-Maid-Attack detection mechanism. Write the correct bo...Mounir IDRASSI10-8/+221
2015-07-25Linux/MacOSX: remove unused variable.Mounir IDRASSI1-2/+0
2015-07-25Language files: update XML language files with new fieldsMounir IDRASSI37-496/+1308
2015-07-25Linux: solve compilation error on OpenSUSE when linking against system wxWidg...Mounir IDRASSI1-1/+1
2015-07-19Linux: Add "new-hash" switch for changing PRF and remove "current-hash" switc...Mounir IDRASSI3-7/+7
2015-07-19User Interface enhancements for PIMMounir IDRASSI12-54/+305
2015-07-14Windows: Don't offer "None" as wipe mode when real wipe is explicitly needed ...Mounir IDRASSI1-1/+1
2015-07-14Windows: in encryption wizard, clicking "Previous" in the "Large File Support...Mounir IDRASSI1-0/+2
2015-07-14Windows: solve issue introduced by the new "Use PIM" checkbox that caused err...Mounir IDRASSI1-2/+1
2015-07-13Windows: on 64-bit Windows, more System favorite service from SysWoW64 to Sys...Mounir IDRASSI6-37/+94
2015-07-13Windows: Fix memory access issues when processing language XML files. Avoid w...Mounir IDRASSI1-10/+53
2015-07-13Windows: workaround to solve system favorites failing to mount because underl...Mounir IDRASSI1-122/+183
2015-07-13Windows: Modify PIM parts in GUI to make it easier to use. Users must explici...Mounir IDRASSI14-58/+219
2015-07-13Windows: Solve failure to create hidden volume when PIM used for outer volume...Mounir IDRASSI1-3/+2
2015-07-13Windows: Set longer wait hint time for System Favorites Service to avoid bein...Mounir IDRASSI1-8/+81
2015-07-11Linux: Solve compilation warning (unused variables, pointer cast)Mounir IDRASSI4-10/+1
2015-07-11Linux: Solve error when building against dynamic wxWidgets library, especiall...Mounir IDRASSI2-0/+5
2015-07-11Use Pim name for internal variables instead of the old name PinMounir IDRASSI42-350/+350
2015-07-08Windows: Fix old issue inherited from TrueCrypt by initializing COM library b...Mounir IDRASSI1-0/+4
2015-07-08Windows: Disable Set Key Header Algorithm item in "Volumes" menu when the sys...Mounir IDRASSI1-0/+14
2015-07-07Windows: Disable menu item for changing system header key derivation algorith...Mounir IDRASSI1-1/+4
2015-07-06Windows: better logic for FormatEx function call. To be replaced in the futur...Mounir IDRASSI2-10/+81
2015-07-06Windows: Display source location of errors in order to help diagnose issues r...Mounir IDRASSI23-227/+270
2015-07-04-10/+660
2015-06-26Linux: don't ask for PIM if TrueCryptMode enabled, both in command line and GUIMounir IDRASSI6-13/+36
2015-06-24Linux: if a keyfile is specified in the command line without a password, don'...Mounir IDRASSI1-1/+1
2015-06-24Linux/MacOSX: solve GUI layout issues although the volume creation wizard sti...Mounir IDRASSI4-9/+10
2015-06-24Linux/MacOSX: restore normal file mode to some source filesMounir IDRASSI35-0/+0
2015-06-24Linux: solve bug when "-tc" command line switch is not followed by another sw...Mounir IDRASSI1-1/+1
2015-06-24Linux/MacOSX: first dynamic mode implementationMounir IDRASSI37-105/+680
2015-06-21Windows: Add a dedicate page for volume PIM in the volume creation wizardMounir IDRASSI7-35/+125
2015-06-19Windows: in "VeraCrypt Format.exe", erase the volume PIM value after the proc...Mounir IDRASSI1-0/+3
2015-06-19Windows: If PIM of a volume is changed and if it is a favorite or system favo...Mounir IDRASSI4-6/+58
2015-06-19Windows: Use "PIM" instead of "PIN" in favorites XML fileMounir IDRASSI1-2/+7
2015-06-12Windows installer: solve Windows XP 32-bit incompatibility issue introduced p...Mounir IDRASSI1-3/+21
2015-06-10Windows: Implement waiting dialog for Auto-Mount Devices operations to avoid ...Mounir IDRASSI1-4/+29
+ (CODE), METHOD_BUFFERED, FILE_ANY_ACCESS)) #define TC_IOCTL_GET_DRIVER_VERSION TC_IOCTL (1) #define TC_IOCTL_GET_BOOT_LOADER_VERSION TC_IOCTL (2) #define TC_IOCTL_MOUNT_VOLUME TC_IOCTL (3) #define TC_IOCTL_DISMOUNT_VOLUME TC_IOCTL (4) #define TC_IOCTL_DISMOUNT_ALL_VOLUMES TC_IOCTL (5) #define TC_IOCTL_GET_MOUNTED_VOLUMES TC_IOCTL (6) #define TC_IOCTL_GET_VOLUME_PROPERTIES TC_IOCTL (7) #define TC_IOCTL_GET_DEVICE_REFCOUNT TC_IOCTL (8) #define TC_IOCTL_IS_DRIVER_UNLOAD_DISABLED TC_IOCTL (9) #define TC_IOCTL_IS_ANY_VOLUME_MOUNTED TC_IOCTL (10) #define TC_IOCTL_GET_PASSWORD_CACHE_STATUS TC_IOCTL (11) #define TC_IOCTL_WIPE_PASSWORD_CACHE TC_IOCTL (12) #define TC_IOCTL_OPEN_TEST TC_IOCTL (13) #define TC_IOCTL_GET_DRIVE_PARTITION_INFO TC_IOCTL (14) #define TC_IOCTL_GET_DRIVE_GEOMETRY TC_IOCTL (15) #define TC_IOCTL_PROBE_REAL_DRIVE_SIZE TC_IOCTL (16) #define TC_IOCTL_GET_RESOLVED_SYMLINK TC_IOCTL (17) #define TC_IOCTL_GET_BOOT_ENCRYPTION_STATUS TC_IOCTL (18) #define TC_IOCTL_BOOT_ENCRYPTION_SETUP TC_IOCTL (19) #define TC_IOCTL_ABORT_BOOT_ENCRYPTION_SETUP TC_IOCTL (20) #define TC_IOCTL_GET_BOOT_ENCRYPTION_SETUP_RESULT TC_IOCTL (21) #define TC_IOCTL_GET_BOOT_DRIVE_VOLUME_PROPERTIES TC_IOCTL (22) #define TC_IOCTL_REOPEN_BOOT_VOLUME_HEADER TC_IOCTL (23) #define TC_IOCTL_GET_BOOT_ENCRYPTION_ALGORITHM_NAME TC_IOCTL (24) #define TC_IOCTL_GET_PORTABLE_MODE_STATUS TC_IOCTL (25) #define TC_IOCTL_SET_PORTABLE_MODE_STATUS TC_IOCTL (26) #define TC_IOCTL_IS_HIDDEN_SYSTEM_RUNNING TC_IOCTL (27) #define TC_IOCTL_GET_SYSTEM_DRIVE_CONFIG TC_IOCTL (28) #define TC_IOCTL_DISK_IS_WRITABLE TC_IOCTL (29) #define TC_IOCTL_START_DECOY_SYSTEM_WIPE TC_IOCTL (30) #define TC_IOCTL_ABORT_DECOY_SYSTEM_WIPE TC_IOCTL (31) #define TC_IOCTL_GET_DECOY_SYSTEM_WIPE_STATUS TC_IOCTL (32) #define TC_IOCTL_GET_DECOY_SYSTEM_WIPE_RESULT TC_IOCTL (33) #define TC_IOCTL_WRITE_BOOT_DRIVE_SECTOR TC_IOCTL (34) #define TC_IOCTL_GET_WARNING_FLAGS TC_IOCTL (35) #define TC_IOCTL_SET_SYSTEM_FAVORITE_VOLUME_DIRTY TC_IOCTL (36) #define TC_IOCTL_REREAD_DRIVER_CONFIG TC_IOCTL (37) #define TC_IOCTL_GET_SYSTEM_DRIVE_DUMP_CONFIG TC_IOCTL (38) #define VC_IOCTL_GET_BOOT_LOADER_FINGERPRINT TC_IOCTL (39) // Legacy IOCTLs used before version 5.0 #define TC_IOCTL_LEGACY_GET_DRIVER_VERSION 466968 #define TC_IOCTL_LEGACY_GET_MOUNTED_VOLUMES 466948 /* Start of driver interface structures, the size of these structures may change between versions; so make sure you first send DRIVER_VERSION to check that it's the correct device driver */ #pragma pack (push) #pragma pack(1) typedef struct { int nReturnCode; /* Return code back from driver */ BOOL FilesystemDirty; BOOL VolumeMountedReadOnlyAfterAccessDenied; BOOL VolumeMountedReadOnlyAfterDeviceWriteProtected; wchar_t wszVolume[TC_MAX_PATH]; /* Volume to be mounted */ Password VolumePassword; /* User password */ BOOL bCache; /* Cache passwords in driver */ int nDosDriveNo; /* Drive number to mount */ uint32 BytesPerSector; BOOL bMountReadOnly; /* Mount volume in read-only mode */ BOOL bMountRemovable; /* Mount volume as removable media */ BOOL bExclusiveAccess; /* Open host file/device in exclusive access mode */ BOOL bMountManager; /* Announce volume to mount manager */ BOOL bPreserveTimestamp; /* Preserve file container timestamp */ BOOL bPartitionInInactiveSysEncScope; /* If TRUE, we are to attempt to mount a partition located on an encrypted system drive without pre-boot authentication. */ int nPartitionInInactiveSysEncScopeDriveNo; /* If bPartitionInInactiveSysEncScope is TRUE, this contains the drive number of the system drive on which the partition is located. */ BOOL SystemFavorite; // Hidden volume protection BOOL bProtectHiddenVolume; /* TRUE if the user wants the hidden volume within this volume to be protected against being overwritten (damaged) */ Password ProtectedHidVolPassword; /* Password to the hidden volume to be protected against overwriting */ BOOL UseBackupHeader; BOOL RecoveryMode; int pkcs5_prf; int ProtectedHidVolPkcs5Prf; BOOL bTrueCryptMode; uint32 BytesPerPhysicalSector; int VolumePim; int ProtectedHidVolPim; wchar_t wszLabel[33]; // maximum label length is 32 for NTFS and 11 for FAT32 BOOL bIsNTFS; // output only BOOL bDriverSetLabel; } MOUNT_STRUCT; typedef struct { int nDosDriveNo; /* Drive letter to unmount */ BOOL ignoreOpenFiles; BOOL HiddenVolumeProtectionTriggered; int nReturnCode; /* Return code back from driver */ } UNMOUNT_STRUCT; typedef struct { unsigned __int32 ulMountedDrives; /* Bitfield of all mounted drive letters */ wchar_t wszVolume[26][TC_MAX_PATH]; /* Volume names of mounted volumes */ wchar_t wszLabel[26][33]; /* Labels of mounted volumes */ unsigned __int64 diskLength[26]; int ea[26]; int volumeType[26]; /* Volume type (e.g. PROP_VOL_TYPE_OUTER, PROP_VOL_TYPE_OUTER_VOL_WRITE_PREVENTED, etc.) */ BOOL truecryptMode[26]; } MOUNT_LIST_STRUCT; typedef struct { int driveNo; int uniqueId; wchar_t wszVolume[TC_MAX_PATH]; unsigned __int64 diskLength; int ea; int mode; int pkcs5; int pkcs5Iterations; BOOL hiddenVolume; BOOL readOnly; BOOL removable; BOOL partitionInInactiveSysEncScope; uint32 volumeHeaderFlags; unsigned __int64 totalBytesRead; unsigned __int64 totalBytesWritten; int hiddenVolProtection; /* Hidden volume protection status (e.g. HIDVOL_PROT_STATUS_NONE, HIDVOL_PROT_STATUS_ACTIVE, etc.) */ int volFormatVersion; int volumePim; wchar_t wszLabel[33]; BOOL bDriverSetLabel; } VOLUME_PROPERTIES_STRUCT; typedef struct { WCHAR symLinkName[TC_MAX_PATH]; WCHAR targetName[TC_MAX_PATH]; } RESOLVE_SYMLINK_STRUCT; typedef struct { WCHAR deviceName[TC_MAX_PATH]; PARTITION_INFORMATION partInfo; BOOL IsGPT; BOOL IsDynamic; } DISK_PARTITION_INFO_STRUCT; typedef struct { WCHAR deviceName[TC_MAX_PATH]; DISK_GEOMETRY diskGeometry; } DISK_GEOMETRY_STRUCT; typedef struct { WCHAR DeviceName[TC_MAX_PATH]; LARGE_INTEGER RealDriveSize; BOOL TimeOut; } ProbeRealDriveSizeRequest; typedef struct { wchar_t wszFileName[TC_MAX_PATH]; // Volume to be "open tested" BOOL bDetectTCBootLoader; // Whether the driver is to determine if the first sector contains a portion of the TrueCrypt Boot Loader BOOL TCBootLoaderDetected; BOOL DetectFilesystem; BOOL FilesystemDetected; } OPEN_TEST_STRUCT; typedef enum { SetupNone = 0, SetupEncryption, SetupDecryption } BootEncryptionSetupMode; typedef struct { // New fields must be added at the end of the structure to maintain compatibility with previous versions BOOL DeviceFilterActive; uint16 BootLoaderVersion; BOOL DriveMounted; BOOL VolumeHeaderPresent; BOOL DriveEncrypted; LARGE_INTEGER BootDriveLength; int64 ConfiguredEncryptedAreaStart; int64 ConfiguredEncryptedAreaEnd; int64 EncryptedAreaStart; int64 EncryptedAreaEnd; uint32 VolumeHeaderSaltCrc32; BOOL SetupInProgress; BootEncryptionSetupMode SetupMode; BOOL TransformWaitingForIdle; uint32 HibernationPreventionCount; BOOL HiddenSystem; int64 HiddenSystemPartitionStart; // Number of times the filter driver answered that an unencrypted volume // is read-only (or mounted an outer/normal TrueCrypt volume as read only) uint32 HiddenSysLeakProtectionCount; } BootEncryptionStatus; typedef struct { BootEncryptionSetupMode SetupMode; WipeAlgorithmId WipeAlgorithm; BOOL ZeroUnreadableSectors; BOOL DiscardUnreadableEncryptedSectors; } BootEncryptionSetupRequest; typedef struct { Password VolumePassword; int pkcs5_prf; int pim; } ReopenBootVolumeHeaderRequest; typedef struct { char BootEncryptionAlgorithmName[256]; char BootPrfAlgorithmName[256]; } GetBootEncryptionAlgorithmNameRequest; typedef struct { byte Fingerprint[WHIRLPOOL_DIGESTSIZE + SHA512_DIGESTSIZE]; } BootLoaderFingerprintRequest; typedef struct { wchar_t DevicePath[TC_MAX_PATH]; byte Configuration; BOOL DriveIsDynamic; uint16 BootLoaderVersion; byte UserConfiguration; char CustomUserMessage[TC_BOOT_SECTOR_USER_MESSAGE_MAX_LENGTH + 1]; } GetSystemDriveConfigurationRequest; typedef struct { WipeAlgorithmId WipeAlgorithm; byte WipeKey[MASTER_KEYDATA_SIZE]; } WipeDecoySystemRequest; typedef struct { BOOL WipeInProgress; WipeAlgorithmId WipeAlgorithm; int64 WipedAreaEnd; } DecoySystemWipeStatus; typedef struct { LARGE_INTEGER Offset; byte Data[TC_SECTOR_SIZE_BIOS]; } WriteBootDriveSectorRequest; typedef struct { BOOL PagingFileCreationPrevented; BOOL SystemFavoriteVolumeDirty; } GetWarningFlagsRequest; typedef struct { struct _DriveFilterExtension *BootDriveFilterExtension; BOOL HwEncryptionEnabled; } GetSystemDriveDumpConfigRequest; #pragma pack (pop) #ifdef TC_WINDOWS_DRIVER #define DRIVER_STR WIDE #else #define DRIVER_STR #endif #define TC_UNIQUE_ID_PREFIX "VeraCryptVolume" #define TC_MOUNT_PREFIX L"\\Device\\VeraCryptVolume" #define NT_MOUNT_PREFIX DRIVER_STR("\\Device\\VeraCryptVolume") #define NT_ROOT_PREFIX DRIVER_STR("\\Device\\VeraCrypt") #define DOS_MOUNT_PREFIX_DEFAULT DRIVER_STR("\\DosDevices\\") #define DOS_MOUNT_PREFIX_GLOBAL DRIVER_STR("\\GLOBAL??\\") // Use Global MS-DOS device names for sanity checks on drive letters #define DOS_ROOT_PREFIX DRIVER_STR("\\DosDevices\\VeraCrypt") #define WIN32_ROOT_PREFIX DRIVER_STR("\\\\.\\VeraCrypt") #define TC_DRIVER_CONFIG_REG_VALUE_NAME DRIVER_STR("VeraCryptConfig") #define TC_ENCRYPTION_FREE_CPU_COUNT_REG_VALUE_NAME DRIVER_STR("VeraCryptEncryptionFreeCpuCount") // WARNING: Modifying the following values can introduce incompatibility with previous versions. #define TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD 0x1 #define TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES 0x2 #define TC_DRIVER_CONFIG_DISABLE_NONADMIN_SYS_FAVORITES_ACCESS 0x4 #define TC_DRIVER_CONFIG_DISABLE_HARDWARE_ENCRYPTION 0x8 #define TC_DRIVER_CONFIG_ENABLE_EXTENDED_IOCTL 0x10 #define TC_DRIVER_CONFIG_DISABLE_EVIL_MAID_ATTACK_DETECTION 0x20 #endif /* _WIN32 */