--- truecrypt/common/tcdefs.h 2018/04/24 16:42:50 1.1.1.8 +++ truecrypt/common/tcdefs.h 2018/04/24 16:47:20 1.1.1.13 @@ -1,41 +1,43 @@ -/* Legal Notice: The source code contained in this file has been derived from - the source code of Encryption for the Masses 2.02a, which is Copyright (c) - 1998-99 Paul Le Roux and which is covered by the 'License Agreement for - Encryption for the Masses'. Modifications and additions to that source code - contained in this file are Copyright (c) 2004-2005 TrueCrypt Foundation and - Copyright (c) 2004 TrueCrypt Team, and are covered by TrueCrypt License 2.0 - the full text of which is contained in the file License.txt included in - TrueCrypt binary and source code distribution archives. */ +/* + Legal Notice: The source code contained in this file has been derived from + the source code of Encryption for the Masses 2.02a, which is Copyright (c) + Paul Le Roux and which is covered by the 'License Agreement for Encryption + for the Masses'. Modifications and additions to that source code contained + in this file are Copyright (c) TrueCrypt Foundation and are covered by the + TrueCrypt License 2.3 the full text of which is contained in the file + License.txt included in TrueCrypt binary and source code distribution + packages. */ // Version displayed to user -#define VERSION_STRING "4.0" +#define VERSION_STRING "4.3a" // Version number to compare against driver -#define VERSION_NUM 0x0400 +#define VERSION_NUM 0x043a // Version number written to volume header during format, // specifies the minimum program version required to mount the volume -#define VOL_REQ_PROG_VERSION 0x0100 +#define VOL_REQ_PROG_VERSION 0x0410 // Volume header version #define VOLUME_HEADER_VERSION 0x0002 -#define TC_MAX_PATH 260 /* Includes the null terminator */ -#define SECTOR_SIZE 512 /* Filesystem sector size */ - -#define BYTES_PER_KB 1024I64 -#define BYTES_PER_MB 1048576I64 -#define BYTES_PER_GB 1073741824I64 -#define BYTES_PER_TB 1099511627776I64 -#define BYTES_PER_PB 1125899906842624I64 +// Sector size of encrypted filesystem, which may differ from sector size +// of host filesystem/device (this is fully supported since v4.3). +#define SECTOR_SIZE 512 + +#define BYTES_PER_KB 1024LL +#define BYTES_PER_MB 1048576LL +#define BYTES_PER_GB 1073741824LL +#define BYTES_PER_TB 1099511627776LL +#define BYTES_PER_PB 1125899906842624LL /* GUI/driver errors */ +#define ERR_SUCCESS 0 #define ERR_OS_ERROR 1 #define ERR_OUTOFMEMORY 2 #define ERR_PASSWORD_WRONG 3 #define ERR_VOL_FORMAT_BAD 4 -#define ERR_BAD_DRIVE_LETTER 5 #define ERR_DRIVE_NOT_FOUND 6 #define ERR_FILES_OPEN 7 #define ERR_VOL_SIZE_WRONG 8 @@ -51,36 +53,27 @@ #define ERR_CIPHER_INIT_FAILURE 18 #define ERR_CIPHER_INIT_WEAK_KEY 19 #define ERR_SELF_TESTS_FAILED 20 +#define ERR_SECTOR_SIZE_INCOMPATIBLE 21 #define ERR_VOL_ALREADY_MOUNTED 32 -#define ERR_NO_FREE_SLOTS 33 #define ERR_NO_FREE_DRIVES 34 #define ERR_FILE_OPEN_FAILED 35 #define ERR_VOL_MOUNT_FAILED 36 #define ERR_INVALID_DEVICE 37 #define ERR_ACCESS_DENIED 38 +#define ERR_MODE_INIT_FAILED 39 #define ERR_DONT_REPORT 100 #define MIN_VOLUME_SIZE 19456 #define MIN_HIDDEN_VOLUME_HOST_SIZE ( MIN_VOLUME_SIZE * 2 + HIDDEN_VOL_HEADER_OFFSET + HEADER_SIZE ) -#define MAX_VOLUME_SIZE 0x7fffFFFFffffFFFFI64 -#define MAX_FAT_VOLUME_SIZE 0xFFFFFFFE00I64 // Should be possible to increase up to 0x1FFFFFFFC00I64 (untested) +#define MAX_VOLUME_SIZE 0x7fffFFFFffffFFFFLL +#define MAX_FAT_VOLUME_SIZE 0x20000000000LL #define MAX_HIDDEN_VOLUME_HOST_SIZE MAX_FAT_VOLUME_SIZE #define MAX_HIDDEN_VOLUME_SIZE ( MAX_HIDDEN_VOLUME_HOST_SIZE - HIDDEN_VOL_HEADER_OFFSET - HEADER_SIZE ) -#define burn(mem,size) \ - memset(mem,0xff,size); \ - memset(mem,0,size); - #define WIDE(x) (LPWSTR)L##x -#ifndef LINUX_DRIVER -#include -#endif - -#pragma intrinsic(memcmp, memcpy, memset, strcat, strcmp, strcpy, strlen) - #ifdef NT4_DRIVER #pragma warning( disable : 4201 ) @@ -141,8 +134,14 @@ typedef unsigned int UINT; #ifndef LRESULT typedef unsigned __int32 LRESULT; #endif +/* NT4_DRIVER */ + +#elif defined(LINUX_DRIVER) -#else /* NT4_DRIVER */ +#define TCalloc(size) (kmalloc( size, GFP_KERNEL )) +#define TCfree(memblock) kfree( memblock ) + +#else #define TCalloc malloc #define TCfree free @@ -169,7 +168,7 @@ typedef unsigned __int32 LRESULT; /* #pragma warning( default : 4514 ) this warning remains disabled */ /* This is needed to fix a bug with VC 5, the TCHAR macro _ttoi64 maps - incorrectly to atoi64 when it should be _atoi64 */ + incorrectly to atoLL when it should be _atoi64 */ #define atoi64 _atoi64 #endif /* _WIN32 */ @@ -177,8 +176,18 @@ typedef unsigned __int32 LRESULT; #endif /* NT4_DRIVER */ #ifdef _WIN32 +#define burn(mem,size) do { volatile char *burnm = (volatile char *)(mem); int burnc = size; RtlSecureZeroMemory (mem, size); while (burnc--) *burnm++ = 0; } while (0) +#else +#define burn(mem,size) do { volatile char *burnm = (volatile char *)(mem); int burnc = size; while (burnc--) *burnm++ = 0; } while (0) +#endif -typedef UINT (_stdcall * diskio_f) (int, void *, UINT); -#pragma hdrstop - +#ifdef MAX_PATH +#define TC_MAX_PATH MAX_PATH +#else +#define TC_MAX_PATH 260 /* Includes the null terminator */ #endif + +#define MAX_URL_LENGTH 2084 /* Internet Explorer limit. Includes the terminating null character. */ + +#define TC_APPLINK "http://www.truecrypt.org/applink.php?version=" VERSION_STRING +#define TC_APPLINK_SECURE "https://www.truecrypt.org/applink.php?version=" VERSION_STRING