diff --git a/Boot/Windows/BootCommon.h b/Boot/Windows/BootCommon.h index 9ff79a2..75500ee 100644 --- a/Boot/Windows/BootCommon.h +++ b/Boot/Windows/BootCommon.h @@ -32,7 +32,7 @@ #define TC_MBR_SECTOR 0 #define TC_MAX_MBR_BOOT_CODE_SIZE 440 -#define TC_MAX_EXTRA_BOOT_PARTITION_SIZE (256UL * 1024UL * 1024UL) +#define TC_MAX_EXTRA_BOOT_PARTITION_SIZE (512UL * 1024UL * 1024UL) #pragma pack (1) diff --git a/Boot/Windows/BootConfig.cpp b/Boot/Windows/BootConfig.cpp index 5091f59..37f0135 100644 --- a/Boot/Windows/BootConfig.cpp +++ b/Boot/Windows/BootConfig.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2008-2009 TrueCrypt Developers Association. All rights reserved. + Copyright (c) 2008-2012 TrueCrypt Developers Association. All rights reserved. Governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution @@ -56,8 +56,11 @@ void ReadBootSectorUserConfiguration () if (userConfig & TC_BOOT_USER_CFG_FLAG_SILENT_MODE) { if (CustomUserMessage[0]) + { + InitVideoMode(); Print (CustomUserMessage); - + } + DisableScreenOutput(); } diff --git a/Boot/Windows/BootDiskIo.cpp b/Boot/Windows/BootDiskIo.cpp index b458444..346786f 100644 --- a/Boot/Windows/BootDiskIo.cpp +++ b/Boot/Windows/BootDiskIo.cpp @@ -401,7 +401,7 @@ BiosResult GetDrivePartitions (byte drive, Partition *partitionArray, size_t par continue; partition.Drive = drive; - partition.Number = partitionNumber; + partition.Number = partitionArrayPos; if (partEntry.Type == 0x5 || partEntry.Type == 0xf) // Extended partition { @@ -422,7 +422,7 @@ BiosResult GetDrivePartitions (byte drive, Partition *partitionArray, size_t par PartitionEntryMBRToPartition (extMbr->Partitions[0], logPart); logPart.Drive = drive; - logPart.Number = partitionNumber++; + logPart.Number = partitionArrayPos; logPart.Primary = false; logPart.StartSector.LowPart += extStartLBA.LowPart; diff --git a/Boot/Windows/IntFilter.cpp b/Boot/Windows/IntFilter.cpp index 52255cc..e1371d3 100644 --- a/Boot/Windows/IntFilter.cpp +++ b/Boot/Windows/IntFilter.cpp @@ -290,7 +290,7 @@ static bool CreateNewBiosMemoryMap () ++overSize; } - PrintErrorNoEndl ("MMAP: "); + PrintErrorNoEndl ("MMP:"); Print (overSize); PrintEndl(); diff --git a/Common/DLGCODE.C b/Common/DLGCODE.C index 3da6620..8293d06 100644 --- a/Common/DLGCODE.C +++ b/Common/DLGCODE.C @@ -4,7 +4,7 @@ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License Agreement for Encryption for the Masses'. Modifications and additions to the original source code (contained in this file) and all other portions - of this file are Copyright (c) 2003-2010 TrueCrypt Developers Association + of this file are Copyright (c) 2003-2012 TrueCrypt Developers Association and are governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ @@ -915,13 +915,13 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam "Paulo Barreto, Brian Gladman, Wei Dai, Peter Gutmann, and many others.\r\n\r\n" "Portions of this software:\r\n" - "Copyright \xA9 2003-2011 TrueCrypt Developers Association. All Rights Reserved.\r\n" + "Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\r\n" "Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\r\n" "Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\r\n" "Copyright \xA9 2002-2004 Mark Adler. All Rights Reserved.\r\n\r\n" "This software as a whole:\r\n" - "Copyright \xA9 2011 TrueCrypt Developers Association. All rights reserved.\r\n\r\n" + "Copyright \xA9 2012 TrueCrypt Developers Association. All rights reserved.\r\n\r\n" "A TrueCrypt Foundation Release"); @@ -3183,7 +3183,7 @@ BOOL CALLBACK RawDevicesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l BOOL DoDriverInstall (HWND hwndDlg) { #ifdef SETUP - if (SystemEncryptionUpgrade) + if (SystemEncryptionUpdate) return TRUE; #endif @@ -6206,7 +6206,7 @@ retry: wchar_t mountPoint[] = { L'A' + (wchar_t) driveNo, L':', 0 }; wsprintfW (msg, GetString ("MOUNTED_VOLUME_DIRTY"), mountPoint); - if (AskWarnYesNoString (msg) == IDYES) + if (AskWarnYesNoStringTopmost (msg) == IDYES) CheckFilesystem (driveNo, TRUE); } @@ -7776,6 +7776,13 @@ int AskWarnYesNoTopmost (char *stringId) } +int AskWarnYesNoStringTopmost (const wchar_t *string) +{ + if (Silent) return IDNO; + return MessageBoxW (MainDlg, string, lpszTitle, MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON1 | MB_SETFOREGROUND | MB_TOPMOST); +} + + int AskWarnNoYes (char *stringId) { if (Silent) return IDNO; diff --git a/Common/DLGCODE.H b/Common/DLGCODE.H index 94fc960..fccfbc7 100644 --- a/Common/DLGCODE.H +++ b/Common/DLGCODE.H @@ -395,6 +395,7 @@ int AskOkCancel (char *stringId); int AskWarnYesNo (char *stringId); int AskWarnYesNoString (const wchar_t *string); int AskWarnYesNoTopmost (char *stringId); +int AskWarnYesNoStringTopmost (const wchar_t *string); int AskWarnNoYes (char *stringId); int AskWarnNoYesString (const wchar_t *string); int AskWarnNoYesTopmost (char *stringId); diff --git a/Common/Language.xml b/Common/Language.xml index 212b47b..f6394e1 100644 --- a/Common/Language.xml +++ b/Common/Language.xml @@ -1,6 +1,6 @@  - + @@ -13,6 +13,7 @@ Install &for all users Bro&wse... Add TrueCrypt icon to &desktop + Donate now... Associate the .tc file &extension with TrueCrypt &Open the destination location when finished Add TrueCrypt to &Start menu @@ -179,28 +180,26 @@ TrueCrypt - Security Token Preferences TrueCrypt Traveler Disk Setup TrueCrypt Volume Properties - About... + About Add/Remove Keyfiles to/from Volume... Add Mounted Volume to Favorites... Add Mounted Volume to System Favorites... Analyze a System Crash... Backup Volume Header... Benchmark... - Report a Bug... Set Header Key Derivation Algorithm... Change Volume Password... Set Header Key Derivation Algorithm... Change Password... Clear Volume History Close All Security Token Sessions - Contact... + Contact Create Hidden Operating System... Create Rescue Disk... Create New Volume... Default Keyfiles... Encrypt System Partition/Drive... Frequently Asked Questions - Forums User's Guide &Homepage Hot Keys... @@ -436,7 +435,6 @@ Results of the analysis indicate that updating the following driver might solve this issue: To help us determine whether there is a bug in TrueCrypt, you can send us an automatically generated error report containing the following items:\n- Program version\n- Operating system version\n- Type of CPU\n- Error category\n- Driver name and version\n- System call stack\n\nIf you select 'Yes', the following URL (which contains the entire error report) will be opened in your default Internet browser. Do you want to send us the above error report? - Please consider making a donation. &Encrypt &Decrypt &Permanently Decrypt @@ -637,7 +635,7 @@ An error occurred when attempting to mount volume. Error seeking location within volume. Error: Incorrect volume size. - WARNING: You should use Quick Format only in the following cases:\n\n1) The device contains random data (e.g. has already been securely and fully encrypted).\n2) You are going to use all available space immediately.\n3) You are not concerned with security (testing).\n\nAre you sure you want to use Quick Format? + WARNING: You should use Quick Format only in the following cases:\n\n1) The device contains no sensitive data and you do not need plausible deniability.\n2) The device has already been securely and fully encrypted.\n\nAre you sure you want to use Quick Format? Dynamic container is a pre-allocated NTFS sparse file whose physical size (actual disk space used) grows as new data is added to it.\n\nWARNING: Performance of sparse-file-hosted volumes is significantly worse than performance of regular volumes. Sparse-file-hosted volumes are also less secure, because it is possible to tell which volume sectors are unused. Furthermore, sparse-file-hosted volumes cannot provide plausible deniability (host a hidden volume). Also note that if data is written to a sparse file container when there is not enough free space in the host file system, the encrypted file system may get corrupted.\n\nAre you sure you want to create a sparse-file-hosted volume? Note that the size of the dynamic container reported by Windows and by TrueCrypt will always be equal to its maximum size. To find out current physical size of the container (actual disk space it uses), right-click the container file (in a Windows Explorer window, not in TrueCrypt), then select 'Properties' and see the 'Size on disk' value.\n\nAlso note that if you move a dynamic container to another volume or drive, the physical size of the container will be extended to the maximum. (You can prevent that by creating a new dynamic container in the destination location, mounting it and then moving the files from the old container to the new one.) Password cache wiped @@ -759,21 +757,14 @@ If you select this option, all files will be extracted from this package but nothing will be installed on the system. Do not select it if you intend to encrypt the system partition or system drive. Selecting this option can be useful, for example, if you want to run TrueCrypt in so-called portable mode. TrueCrypt does not have to be installed on the operating system under which it is run. After all files are extracted, you can directly run the extracted file 'TrueCrypt.exe' (then TrueCrypt will run in portable mode). Setup Options Here you can set various options to control the installation process. - When ready, click Install to start installing. - When ready, click Upgrade to start upgrading. - When ready, click Extract to start extracting. Installing Please wait while TrueCrypt is being installed. - TrueCrypt Installed TrueCrypt has been successfully installed TrueCrypt has been successfully upgraded - TrueCrypt has been successfully installed. You can click Finish and run TrueCrypt now. - TrueCrypt has been successfully installed. Please consider making a donation. You can click Finish anytime to close the installer. Extraction Options Here you can set various options to control the extraction process. Please wait while files are being extracted. - Extraction Complete Files successfully extracted All files have been successfully extracted to the destination location. If the specified folder does not exist, it will be automatically created. @@ -797,7 +788,7 @@ The installation has been rolled back. TrueCrypt has been successfully installed. TrueCrypt has been successfully updated. - TrueCrypt has been upgraded to a new version. Before you can start using it, your computer must be restarted.\n\nDo you want to restart it now? + TrueCrypt has been successfully upgraded. However, before you can start using it, the computer must be restarted.\n\nDo you want to restart it now? Failed to upgrade TrueCrypt!\n\nIMPORTANT: Before you shut down or restart the system, we strongly recommend that you use System Restore (Windows Start menu > All programs > Accessories > System Tools > System Restore) to restore your system to the restore point named 'TrueCrypt installation'. If System Restore is not available, you should try installing the original or the new version of TrueCrypt again before you shut down or restart the system. TrueCrypt has been successfully uninstalled.\n\nClick 'Finish' to remove the TrueCrypt installer and the folder %hs. Note that the folder will not be removed if it contains any files that were not installed by the TrueCrypt installer or created by TrueCrypt. Removing TrueCrypt registry entries @@ -826,6 +817,7 @@ Uninstalling TrueCrypt device driver Registration of the User Account Control support library failed. Unregistration of the User Account Control support library failed. + Note about portable mode:\n\nPlease note that the operating system requires drivers to be registered with it before they can be started. Hence, the TrueCrypt driver is not (and cannot be) fully portable (whereas the TrueCrypt applications are fully portable, i.e. they do not have to be installed or registered with the operating system). Also note that TrueCrypt needs a driver to provide transparent on-the-fly encryption/decryption. Note that if you decide to run TrueCrypt in portable mode (as opposed to running an installed copy of TrueCrypt), the system will ask you for permission to run TrueCrypt (UAC prompt) every time you attempt to run it.\n\nThe reason is that when you run TrueCrypt in portable mode, TrueCrypt needs to load and start the TrueCrypt device driver. TrueCrypt needs a device driver to provide transparent on-the-fly encryption/decryption, and users without administrator privileges cannot start device drivers in Windows. Therefore, the system will ask you for permission to run TrueCrypt with administrator privileges (UAC prompt).\n\nNote that if you install TrueCrypt on the system (as opposed to running TrueCrypt in portable mode), the system will NOT ask you for permission to run TrueCrypt (UAC prompt) every time you attempt to run it.\n\nAre you sure you want to extract the files? Warning: This instance of the Volume Creation Wizard has administrator privileges.\n\nYour new volume may be created with permissions that will not allow you to write to the volume when it is mounted. If you want to avoid that, close this instance of the Volume Creation Wizard and launch a new one without administrator privileges.\n\nDo you want to close this instance of the Volume Creation Wizard? Error: Cannot display license. @@ -1167,7 +1159,7 @@ CAUTION: If you permanently decrypt the system partition/drive, unencrypted data will be written to it.\n\nAre you really sure you want to permanently decrypt the system partition/drive? Warning: If you use a cascade of ciphers for system encryption, you may encounter the following issues:\n\n1) The TrueCrypt Boot Loader is larger than normal and, therefore, there is not enough space in the first drive track for a backup of the TrueCrypt Boot Loader. Hence, whenever it gets damaged (which often happens, for example, during inappropriately designed anti-piracy activation procedures of certain programs), you will need to use the TrueCrypt Rescue Disk to boot or to repair the TrueCrypt Boot Loader.\n\n2) On some computers, resuming from hibernation takes longer.\n\nThese potential issues can be prevented by choosing a non-cascade encryption algorithm (e.g. AES).\n\nAre you sure you want to use a cascade of ciphers? If you encounter any of the previously described problems, decrypt the partition/drive (if it is encrypted) and then try encrypting it again using a non-cascade encryption algorithm (e.g. AES). - WARNING: For safety and security reasons, you should update TrueCrypt on the decoy operating system before you update it on the hidden operating system.\n\nTo do so, boot the decoy system and run the TrueCrypt installer from within it. Then boot the hidden system and run the installer from within it as well.\n\nNote: The decoy system and the hidden system share a single boot loader. If you upgraded TrueCrypt only on the hidden system (but not on the decoy system), the decoy system would contain a TrueCrypt driver and TrueCrypt applications whose version numbers are different from the version number of the TrueCrypt Boot Loader. Such a discrepancy might indicate that there is a hidden operating system on this computer.\n\n\nDo you want to continue? (Not recommended.) + WARNING: For safety and security reasons, you should update TrueCrypt on the decoy operating system before you update it on the hidden operating system.\n\nTo do so, boot the decoy system and run the TrueCrypt installer from within it. Then boot the hidden system and run the installer from within it as well.\n\nNote: The decoy system and the hidden system share a single boot loader. If you upgraded TrueCrypt only on the hidden system (but not on the decoy system), the decoy system would contain a TrueCrypt driver and TrueCrypt applications whose version numbers are different from the version number of the TrueCrypt Boot Loader. Such a discrepancy might indicate that there is a hidden operating system on this computer.\n\n\nDo you want to continue? The version number of the TrueCrypt Boot Loader that booted this operating system is different from the version number of the TrueCrypt driver (and of the TrueCrypt applications) installed on this system.\n\nYou should run the TrueCrypt installer (whose version number is the same as the one of the TrueCrypt Boot Loader) to update TrueCrypt on this operating system. The version number of the TrueCrypt Boot Loader that booted this operating system is different from the version number of the TrueCrypt driver (and of the TrueCrypt applications) installed on this system. Note that older versions may contain bugs fixed in later versions.\n\nIf you did not boot from the TrueCrypt Rescue Disk, you should reinstall TrueCrypt or upgrade it to the latest stable version (the boot loader will be updated too).\n\nIf you booted from the TrueCrypt Rescue Disk, you should update it ('System' > 'Create Rescue Disk'). The TrueCrypt Boot Loader has been upgraded.\n\nIt is strongly recommended that you create a new TrueCrypt Rescue Disk (which will contain the new version of the TrueCrypt Boot Loader) by selecting 'System' > 'Create Rescue Disk' after you restart your computer. @@ -1222,6 +1214,8 @@ Note that the number of threads is currently limited, which will affect benchmark results (worse performance).\n\nTo utilize the full potential of the processor(s), select 'Settings' > 'Performance' and disable the corresponding option. Do you want TrueCrypt to attempt to disable write protection of the partition/drive? WARNING: This setting may degrade performance.\n\nAre you sure you want to use this setting? + Warning: TrueCrypt volume auto-dismounted + Before you physically remove or turn off a device containing a mounted volume, you should always dismount the volume in TrueCrypt first.\n\nUnexpected spontaneous dismount is usually caused by an intermittently failing cable, drive (enclosure), etc. Test Keyfile Backspace diff --git a/Common/TCDEFS.H b/Common/TCDEFS.H index 6c32991..9ab14a4 100644 --- a/Common/TCDEFS.H +++ b/Common/TCDEFS.H @@ -15,15 +15,15 @@ #define TC_APP_NAME "TrueCrypt" // Version displayed to user -#define VERSION_STRING "7.1" +#define VERSION_STRING "7.1a" // Version number to compare against driver -#define VERSION_NUM 0x0710 +#define VERSION_NUM 0x071a // Release date -#define TC_STR_RELEASE_DATE "September 1, 2011" -#define TC_RELEASE_DATE_YEAR 2011 -#define TC_RELEASE_DATE_MONTH 9 +#define TC_STR_RELEASE_DATE "February 7, 2012" +#define TC_RELEASE_DATE_YEAR 2012 +#define TC_RELEASE_DATE_MONTH 2 #define BYTES_PER_KB 1024LL #define BYTES_PER_MB 1048576LL diff --git a/Common/TrueCrypt_mounted.ico b/Common/TrueCrypt_mounted.ico new file mode 100644 index 0000000..50c215e Binary files /dev/null and b/Common/TrueCrypt_mounted.ico differ diff --git a/Driver/DriveFilter.c b/Driver/DriveFilter.c index e398671..549724c 100644 --- a/Driver/DriveFilter.c +++ b/Driver/DriveFilter.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2008-2011 TrueCrypt Developers Association. All rights reserved. + Copyright (c) 2008-2012 TrueCrypt Developers Association. All rights reserved. Governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution @@ -673,7 +673,7 @@ static NTSTATUS DispatchPower (PDEVICE_OBJECT DeviceObject, PIRP Irp, DriveFilte && irpSp->MinorFunction == IRP_MN_SET_POWER && irpSp->Parameters.Power.ShutdownType == PowerActionHibernate) { - AbortBootEncryptionSetup(); + while (SendDeviceIoControlRequest (RootDeviceObject, TC_IOCTL_ABORT_BOOT_ENCRYPTION_SETUP, NULL, 0, NULL, 0) == STATUS_INSUFFICIENT_RESOURCES); } #if 0 // Dismount of the system drive is disabled until there is a way to do it without causing system errors (see the documentation for more info) diff --git a/Driver/Driver.rc b/Driver/Driver.rc index 47dd63f..6f1f9a9 100644 --- a/Driver/Driver.rc +++ b/Driver/Driver.rc @@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 7,1,0,0 - PRODUCTVERSION 7,1,0,0 + FILEVERSION 7,1,1,0 + PRODUCTVERSION 7,1,1,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -45,11 +45,11 @@ BEGIN BEGIN VALUE "CompanyName", "TrueCrypt Foundation" VALUE "FileDescription", "TrueCrypt Driver" - VALUE "FileVersion", "7.1" + VALUE "FileVersion", "7.1a" VALUE "LegalTrademarks", "TrueCrypt" VALUE "OriginalFilename", "truecrypt.sys" VALUE "ProductName", "TrueCrypt" - VALUE "ProductVersion", "7.1" + VALUE "ProductVersion", "7.1a" END END BLOCK "VarFileInfo" diff --git a/Driver/NTDRIVER.C b/Driver/NTDRIVER.C index bec54f3..4ba36d5 100644 --- a/Driver/NTDRIVER.C +++ b/Driver/NTDRIVER.C @@ -4,7 +4,7 @@ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License Agreement for Encryption for the Masses'. Modifications and additions to the original source code (contained in this file) and all other portions - of this file are Copyright (c) 2003-2011 TrueCrypt Developers Association + of this file are Copyright (c) 2003-2012 TrueCrypt Developers Association and are governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ @@ -257,10 +257,10 @@ NTSTATUS TCDispatchQueueIRP (PDEVICE_OBJECT DeviceObject, PIRP Irp) DriverShuttingDown = TRUE; if (EncryptionSetupThread) - AbortBootEncryptionSetup(); + while (SendDeviceIoControlRequest (RootDeviceObject, TC_IOCTL_ABORT_BOOT_ENCRYPTION_SETUP, NULL, 0, NULL, 0) == STATUS_INSUFFICIENT_RESOURCES); if (DecoySystemWipeThread) - AbortDecoySystemWipe(); + while (SendDeviceIoControlRequest (RootDeviceObject, TC_IOCTL_ABORT_DECOY_SYSTEM_WIPE, NULL, 0, NULL, 0) == STATUS_INSUFFICIENT_RESOURCES); OnShutdownPending(); } @@ -2105,8 +2105,14 @@ VOID TCUnloadDriver (PDRIVER_OBJECT DriverObject) void OnShutdownPending () { - UnmountAllDevices (NULL, TRUE); - WipeCache (); + UNMOUNT_STRUCT unmount; + memset (&unmount, 0, sizeof (unmount)); + unmount.ignoreOpenFiles = TRUE; + + while (SendDeviceIoControlRequest (RootDeviceObject, TC_IOCTL_DISMOUNT_ALL_VOLUMES, &unmount, sizeof (unmount), &unmount, sizeof (unmount)) == STATUS_INSUFFICIENT_RESOURCES || unmount.HiddenVolumeProtectionTriggered) + unmount.HiddenVolumeProtectionTriggered = FALSE; + + while (SendDeviceIoControlRequest (RootDeviceObject, TC_IOCTL_WIPE_PASSWORD_CACHE, NULL, 0, NULL, 0) == STATUS_INSUFFICIENT_RESOURCES); } @@ -2158,6 +2164,21 @@ ret: } +typedef struct +{ + PDEVICE_OBJECT deviceObject; ULONG ioControlCode; void *inputBuffer; int inputBufferSize; void *outputBuffer; int outputBufferSize; + NTSTATUS Status; + KEVENT WorkItemCompletedEvent; +} SendDeviceIoControlRequestWorkItemArgs; + + +static VOID SendDeviceIoControlRequestWorkItemRoutine (PDEVICE_OBJECT rootDeviceObject, SendDeviceIoControlRequestWorkItemArgs *arg) +{ + arg->Status = SendDeviceIoControlRequest (arg->deviceObject, arg->ioControlCode, arg->inputBuffer, arg->inputBufferSize, arg->outputBuffer, arg->outputBufferSize); + KeSetEvent (&arg->WorkItemCompletedEvent, IO_NO_INCREMENT, FALSE); +} + + NTSTATUS SendDeviceIoControlRequest (PDEVICE_OBJECT deviceObject, ULONG ioControlCode, void *inputBuffer, int inputBufferSize, void *outputBuffer, int outputBufferSize) { IO_STATUS_BLOCK ioStatusBlock; @@ -2165,7 +2186,29 @@ NTSTATUS SendDeviceIoControlRequest (PDEVICE_OBJECT deviceObject, ULONG ioContro PIRP irp; KEVENT event; - ASSERT(KeGetCurrentIrql() <= APC_LEVEL); + if (KeGetCurrentIrql() > APC_LEVEL) + { + SendDeviceIoControlRequestWorkItemArgs args; + + PIO_WORKITEM workItem = IoAllocateWorkItem (RootDeviceObject); + if (!workItem) + return STATUS_INSUFFICIENT_RESOURCES; + + args.deviceObject = deviceObject; + args.ioControlCode = ioControlCode; + args.inputBuffer = inputBuffer; + args.inputBufferSize = inputBufferSize; + args.outputBuffer = outputBuffer; + args.outputBufferSize = outputBufferSize; + + KeInitializeEvent (&args.WorkItemCompletedEvent, SynchronizationEvent, FALSE); + IoQueueWorkItem (workItem, SendDeviceIoControlRequestWorkItemRoutine, DelayedWorkQueue, &args); + + KeWaitForSingleObject (&args.WorkItemCompletedEvent, Executive, KernelMode, FALSE, NULL); + IoFreeWorkItem (workItem); + + return args.Status; + } KeInitializeEvent (&event, NotificationEvent, FALSE); diff --git a/Driver/NTDRIVER.H b/Driver/NTDRIVER.H index 549d8b1..21cbd17 100644 --- a/Driver/NTDRIVER.H +++ b/Driver/NTDRIVER.H @@ -96,6 +96,7 @@ typedef enum extern PDRIVER_OBJECT TCDriverObject; +extern PDEVICE_OBJECT RootDeviceObject; extern BOOL DriverShuttingDown; extern ULONG OsMajorVersion; extern ULONG OsMinorVersion; diff --git a/Format/Format.rc b/Format/Format.rc index 6c93942..83d4d67 100644 --- a/Format/Format.rc +++ b/Format/Format.rc @@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 7,1,0,0 - PRODUCTVERSION 7,1,0,0 + FILEVERSION 7,1,1,0 + PRODUCTVERSION 7,1,1,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -46,11 +46,11 @@ BEGIN BEGIN VALUE "CompanyName", "TrueCrypt Foundation" VALUE "FileDescription", "TrueCrypt Format" - VALUE "FileVersion", "7.1" + VALUE "FileVersion", "7.1a" VALUE "LegalTrademarks", "TrueCrypt" VALUE "OriginalFilename", "TrueCrypt Format.exe" VALUE "ProductName", "TrueCrypt" - VALUE "ProductVersion", "7.1" + VALUE "ProductVersion", "7.1a" END END BLOCK "VarFileInfo" diff --git a/Format/TCFORMAT.C b/Format/TCFORMAT.C index 0db5ad3..8ef3c45 100644 --- a/Format/TCFORMAT.C +++ b/Format/TCFORMAT.C @@ -1629,6 +1629,9 @@ static void SysEncResume (void) if (locBootEncStatus.SetupInProgress) { + // Prevent the OS from entering Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS | ES_SYSTEM_REQUIRED); + bSystemEncryptionInProgress = TRUE; UpdateSysEncControls (); SetTimer (MainDlg, TIMER_ID_SYSENC_PROGRESS, TIMER_INTERVAL_SYSENC_PROGRESS, NULL); @@ -1667,11 +1670,17 @@ static void SysEncResume (void) if (!bSystemEncryptionInProgress) { + // Allow the OS to enter Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS); + EnableWindow (GetDlgItem (hCurPage, IDC_PAUSE), TRUE); Error ("FAILED_TO_RESUME_SYSTEM_ENCRYPTION"); return; } + // Prevent the OS from entering Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS | ES_SYSTEM_REQUIRED); + bFirstSysEncResumeDone = TRUE; InitSysEncProgressBar (); UpdateSysEncProgressBar (); @@ -2324,6 +2333,9 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg) } } + // Prevent the OS from entering Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS | ES_SYSTEM_REQUIRED); + bHidden = bHiddenVol && !bHiddenVolHost; volParams->bDevice = bDevice; @@ -2377,6 +2389,9 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg) nStatus = TCFormatVolume (volParams); } + // Allow the OS to enter Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS); + if (nStatus == ERR_OUTOFMEMORY) { AbortProcess ("OUTOFMEMORY"); @@ -2532,6 +2547,7 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg) } cancel: + LastDialogId = (bInPlaceEncNonSys ? "NONSYS_INPLACE_ENC_CANCELED" : "FORMAT_CANCELED"); if (!bInPlaceEncNonSys) @@ -2548,6 +2564,9 @@ cancel: bVolTransformThreadRunning = FALSE; bVolTransformThreadCancel = FALSE; + // Allow the OS to enter Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS); + PostMessage (hwndDlg, TC_APPMSG_VOL_TRANSFORM_THREAD_ENDED, 0, 0); if (bHiddenVolHost && hiddenVolHostDriveNo < -1 && !bVolTransformThreadCancel) // If hidden volume host could not be mounted @@ -5520,6 +5539,9 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa { // The driver stopped encrypting/decrypting + // Allow the OS to enter Sleep mode when idle + SetThreadExecutionState (ES_CONTINUOUS); + KillTimer (hwndDlg, TIMER_ID_SYSENC_PROGRESS); try diff --git a/License.html b/License.html index c07da92..33489ed 100644 --- a/License.html +++ b/License.html @@ -34,8 +34,6 @@
  1. The name of Your Product (or of Your modified version of This Product) must not contain the name TrueCrypt (for example, the following names are not allowed: TrueCrypt, TrueCrypt+, TrueCrypt Professional, iTrueCrypt, etc.) nor any other names confusingly similar to the name TrueCrypt (e.g., True-Crypt, True Crypt, TruKrypt, etc.)

    - Note: TrueCrypt and the TrueCrypt logo are registered trademarks. The goal is not to monetize the name or the product, but to protect the reputation of TrueCrypt, and to prevent support issues and other kinds of issues that might arise from the existence of similar products with the same or similar name. Even though TrueCrypt and the TrueCrypt logo are trademarks, TrueCrypt is and will remain open-source and free software.
    -
    All occurrences of the name TrueCrypt that could reasonably be considered to identify Your Product must be removed from Your Product and from any associated materials. Logo(s) included in (or attached to) Your Product (and in/to associated materials) must not incorporate and must not be confusingly similar to any of the TrueCrypt logos (including, but not limited to, the non-textual logo consisting primarily of a key in stylized form) or portion(s) thereof. All graphics contained in This Product (logos, icons, etc.) must be removed from Your Product (or from Your modified version of This Product) and from any associated materials.

  2. @@ -51,16 +49,12 @@
    The source code of Your Product must not be deliberately obfuscated and it must not be in an intermediate form (e.g., the output of a preprocessor). Source code means the preferred form in which a programmer would usually modify the program.

    - Portions of the source code of Your Product not contained in This Product (e.g., portions added by You in creating Your Product, whether created by You or by third parties) must be available under license(s) that (however, see also Subsection III.1.e) allow(s) anyone to modify and derive new works from the portions of the source code that are not contained in This Product and to use, copy, and redistribute such modifications and/or derivative works. The license(s) must be perpetual, non-exclusive, royalty-free, no-charge, and worldwide, and must not invalidate, weaken, restrict, interpret, amend, modify, interfere with or otherwise affect any part, term, provision, or clause of this License. The text(s) of the license(s) must be included with every copy of Your Product that You make and distribute.
    -
    - Note: If you cannot comply with the above requirements, you may contact licensing@truecrypt.org.

    + Portions of the source code of Your Product not contained in This Product (e.g., portions added by You in creating Your Product, whether created by You or by third parties) must be available under license(s) that (however, see also Subsection III.1.e) allow(s) anyone to modify and derive new works from the portions of the source code that are not contained in This Product and to use, copy, and redistribute such modifications and/or derivative works. The license(s) must be perpetual, non-exclusive, royalty-free, no-charge, and worldwide, and must not invalidate, weaken, restrict, interpret, amend, modify, interfere with or otherwise affect any part, term, provision, or clause of this License. The text(s) of the license(s) must be included with every copy of Your Product that You make and distribute.

  3. You must not change the license terms of This Product in any way (adding any new terms is considered changing the license terms even if the original terms are retained), which means, e.g., that no part of This Product may be put under another license. You must keep intact all the legal notices contained in the source code files. You must include the following items with every copy of Your Product that You make and distribute: a clear and conspicuous notice stating that Your Product or portion(s) thereof is/are governed by this version of the TrueCrypt License, a verbatim copy of this version of the TrueCrypt License (as contained herein), a clear and conspicuous notice containing information about where the included copy of the License can be found, and an appropriate copyright notice.
2. You are not obligated to comply with Subsection III.1.d if Your Product is not distributed (i.e., Your Product is available only to You).
-
- Note: If you cannot comply with Subsection III.1.d, you may contact licensing@truecrypt.org.



@@ -68,13 +62,13 @@
You expressly acknowledge and agree to the following:

- 1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY APPLICABLE COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY WHO MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, ARISING OUT OF THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO ANY (CO)AUTHOR, COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY.
+ 1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY APPLICABLE INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY WHO MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, ARISING OUT OF THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO ANY (CO)AUTHOR, INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY.

2. THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THIS PRODUCT IS WITH YOU. SHOULD THIS PRODUCT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.

3. THIS PRODUCT MAY INCORPORATE IMPLEMENTATIONS OF CRYPTOGRAPHIC ALGORITHMS THAT ARE REGULATED (E.G., SUBJECT TO EXPORT/IMPORT CONTROL REGULATIONS) OR ILLEGAL IN SOME COUNTRIES. IT IS SOLELY YOUR RESPONSIBILITY TO VERIFY THAT IT IS LEGAL TO IMPORT AND/OR (RE)EXPORT AND/OR USE THIS PRODUCT (OR PORTIONS THEREOF) IN COUNTRIES WHERE YOU INTEND TO USE IT AND/OR TO WHICH YOU INTEND TO IMPORT IT AND/OR FROM WHICH YOU INTEND TO EXPORT IT, AND IT IS SOLELY YOUR RESPONSIBILITY TO COMPLY WITH ANY APPLICABLE REGULATIONS, RESTRICTIONS, AND LAWS.

-4. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS PRODUCT, AND APPLICABLE COPYRIGHT/TRADEMARK OWNERS, HARMLESS FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, ACTIONS, PROCEEDINGS, AND SUITS, DIRECTLY RELATED TO OR ARISING OUT OF YOUR USE, INABILITY TO USE, COPYING, (RE)DISTRIBUTION, IMPORT AND/OR (RE)EXPORT OF THIS PRODUCT (OR PORTIONS THEREOF) AND/OR YOUR BREACH OF ANY TERM OF THIS LICENSE.
+4. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS PRODUCT, AND APPLICABLE INTELLECTUAL-PROPERTY OWNERS, HARMLESS FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, ACTIONS, PROCEEDINGS, AND SUITS, DIRECTLY RELATED TO OR ARISING OUT OF YOUR USE, INABILITY TO USE, COPYING, (RE)DISTRIBUTION, IMPORT AND/OR (RE)EXPORT OF THIS PRODUCT (OR PORTIONS THEREOF) AND/OR YOUR BREACH OF ANY TERM OF THIS LICENSE.



@@ -82,10 +76,6 @@
This License does not grant permission to use trademarks associated with (or applying to) This Product, except for fair use as defined by applicable law and except for use expressly permitted or required by this License. Any attempt otherwise to use trademarks associated with (or applying to) This Product automatically and immediately terminates Your rights under This License and may constitute trademark infringement (which may be prosecuted).

-TrueCrypt is a trademark registered with the World Intellectual Property Organization, an agency of the United Nations, (international trademark registration), in the U.S. Patent and Trademark Office, and in the trademark offices of other countries. All TrueCrypt logos are trademarks and the non-textual TrueCrypt logo consisting primarily of a key in stylized form is a trademark registered in the U.S. Patent and Trademark Office.
-
- Note: The goal is not to monetize the name or the product, but to protect the reputation of TrueCrypt. TrueCrypt is and will remain open-source and free software.
-


VI. General Terms and Conditions, Miscellaneous Provisions
diff --git a/License.txt b/License.txt index b367066..b2103ab 100644 --- a/License.txt +++ b/License.txt @@ -93,15 +93,6 @@ Your Product. any other names confusingly similar to the name TrueCrypt (e.g., True-Crypt, True Crypt, TruKrypt, etc.) - Note: TrueCrypt and the TrueCrypt logo are registered - trademarks. The goal is not to monetize the name or the - product, but to protect the reputation of TrueCrypt, and to - prevent support issues and other kinds of issues that might - arise from the existence of similar products with the same - or similar name. Even though TrueCrypt and the TrueCrypt - logo are trademarks, TrueCrypt is and will remain - open-source and free software. - All occurrences of the name TrueCrypt that could reasonably be considered to identify Your Product must be removed from Your Product and from any associated materials. Logo(s) @@ -110,7 +101,7 @@ Your Product. confusingly similar to any of the TrueCrypt logos (including, but not limited to, the non-textual logo consisting primarily of a key in stylized form) or - portion(s) thereof. All graphics contained in This Product + portion(s) thereof. All graphics contained in This Product (logos, icons, etc.) must be removed from Your Product (or from Your modified version of This Product) and from any associated materials. @@ -189,9 +180,6 @@ Your Product. text(s) of the license(s) must be included with every copy of Your Product that You make and distribute. - Note: If you cannot comply with the above requirements, you - may contact licensing@truecrypt.org. - e. You must not change the license terms of This Product in any way (adding any new terms is considered changing the license terms even if the original terms are retained), @@ -212,9 +200,6 @@ Your Product. Your Product is not distributed (i.e., Your Product is available only to You). -Note: If you cannot comply with Subsection III.1.d, you may -contact licensing@truecrypt.org. - IV. Disclaimer of Liability, Disclaimer of Warranty, @@ -223,23 +208,23 @@ Indemnification You expressly acknowledge and agree to the following: 1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY -APPLICABLE COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY WHO MAY -COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, AS -MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER PARTY -FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, -INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, CORRUPTION -OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR THIRD PARTIES, A -FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS -INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT -(INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, +APPLICABLE INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY WHO +MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, +AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER +PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY +DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR +THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY +OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR +BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, +TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, ARISING OUT OF THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO -ANY (CO)AUTHOR, COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY. +ANY (CO)AUTHOR, INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY. 2. THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT @@ -260,7 +245,7 @@ IS SOLELY YOUR RESPONSIBILITY TO COMPLY WITH ANY APPLICABLE REGULATIONS, RESTRICTIONS, AND LAWS. 4. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS -PRODUCT, AND APPLICABLE COPYRIGHT/TRADEMARK OWNERS, HARMLESS +PRODUCT, AND APPLICABLE INTELLECTUAL-PROPERTY OWNERS, HARMLESS FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, @@ -282,19 +267,6 @@ automatically and immediately terminates Your rights under This License and may constitute trademark infringement (which may be prosecuted). -TrueCrypt is a trademark registered with the World Intellectual -Property Organization, an agency of the United Nations, -(international trademark registration), in the U.S. Patent and -Trademark Office, and in the trademark offices of other -countries. All TrueCrypt logos are trademarks and the -non-textual TrueCrypt logo consisting primarily of a key in -stylized form is a trademark registered in the U.S. Patent and -Trademark Office. - -Note: The goal is not to monetize the name or the product, but -to protect the reputation of TrueCrypt. TrueCrypt is and will -remain open-source and free software. - VI. General Terms and Conditions, Miscellaneous Provisions diff --git a/Main/Forms/AboutDialog.cpp b/Main/Forms/AboutDialog.cpp index 6f5061d..736a669 100644 --- a/Main/Forms/AboutDialog.cpp +++ b/Main/Forms/AboutDialog.cpp @@ -52,14 +52,14 @@ namespace TrueCrypt L"Paulo Barreto, Brian Gladman, Wei Dai, Peter Gutmann, and many others.\n\n" L"Portions of this software:\n" - L"Copyright \xA9 2003-2011 TrueCrypt Developers Association. All Rights Reserved.\n" + L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\n" L"Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\n" L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\n" L"\nThis software as a whole:\n" - L"Copyright \xA9 2011 TrueCrypt Developers Association. All rights reserved.\n\n" + L"Copyright \xA9 2012 TrueCrypt Developers Association. All rights reserved.\n\n" - L"This software uses wxWidgets library, which is copyright \xA9 1998-2010 Julian Smart, Robert Roebling et al.\n\n" + L"This software uses wxWidgets library, which is copyright \xA9 1998-2011 Julian Smart, Robert Roebling et al.\n\n" L"A TrueCrypt Foundation Release"); } diff --git a/Main/Forms/Forms.cpp b/Main/Forms/Forms.cpp index 094c2ef..5825381 100644 --- a/Main/Forms/Forms.cpp +++ b/Main/Forms/Forms.cpp @@ -179,34 +179,22 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t NewsMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("News") ) , wxEmptyString, wxITEM_NORMAL ); HelpMenu->Append( NewsMenuItem ); - HelpMenu->AppendSeparator(); - wxMenuItem* VersionHistoryMenuItem; VersionHistoryMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Version History") ) , wxEmptyString, wxITEM_NORMAL ); HelpMenu->Append( VersionHistoryMenuItem ); - wxMenuItem* LegalNoticesMenuItem; - LegalNoticesMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Legal Notices") ) , wxEmptyString, wxITEM_NORMAL ); - HelpMenu->Append( LegalNoticesMenuItem ); - HelpMenu->AppendSeparator(); - wxMenuItem* ReportBugMenuItem; - ReportBugMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Report a Bug...") ) , wxEmptyString, wxITEM_NORMAL ); - HelpMenu->Append( ReportBugMenuItem ); - - wxMenuItem* ForumsMenuItem; - ForumsMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Forums") ) , wxEmptyString, wxITEM_NORMAL ); - HelpMenu->Append( ForumsMenuItem ); - wxMenuItem* ContactMenuItem; - ContactMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Contact...") ) , wxEmptyString, wxITEM_NORMAL ); + ContactMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Contact") ) , wxEmptyString, wxITEM_NORMAL ); HelpMenu->Append( ContactMenuItem ); - HelpMenu->AppendSeparator(); + wxMenuItem* LegalNoticesMenuItem; + LegalNoticesMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Legal Notices") ) , wxEmptyString, wxITEM_NORMAL ); + HelpMenu->Append( LegalNoticesMenuItem ); wxMenuItem* AboutMenuItem; - AboutMenuItem = new wxMenuItem( HelpMenu, wxID_ABOUT, wxString( _("About...") ) , wxEmptyString, wxITEM_NORMAL ); + AboutMenuItem = new wxMenuItem( HelpMenu, wxID_ABOUT, wxString( _("About") ) , wxEmptyString, wxITEM_NORMAL ); HelpMenu->Append( AboutMenuItem ); MainMenuBar->Append( HelpMenu, _("&Help") ); @@ -425,10 +413,8 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t this->Connect( DownloadsMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDownloadsMenuItemSelected ) ); this->Connect( NewsMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnNewsMenuItemSelected ) ); this->Connect( VersionHistoryMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnVersionHistoryMenuItemSelected ) ); - this->Connect( LegalNoticesMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnLegalNoticesMenuItemSelected ) ); - this->Connect( ReportBugMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnReportBugMenuItemSelected ) ); - this->Connect( ForumsMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnForumsMenuItemSelected ) ); this->Connect( ContactMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnContactMenuItemSelected ) ); + this->Connect( LegalNoticesMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnLegalNoticesMenuItemSelected ) ); this->Connect( AboutMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnAboutMenuItemSelected ) ); SlotListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( MainFrameBase::OnListItemActivated ), NULL, this ); SlotListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( MainFrameBase::OnListItemDeselected ), NULL, this ); @@ -488,10 +474,8 @@ MainFrameBase::~MainFrameBase() this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDownloadsMenuItemSelected ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnNewsMenuItemSelected ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnVersionHistoryMenuItemSelected ) ); - this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnLegalNoticesMenuItemSelected ) ); - this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnReportBugMenuItemSelected ) ); - this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnForumsMenuItemSelected ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnContactMenuItemSelected ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnLegalNoticesMenuItemSelected ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnAboutMenuItemSelected ) ); SlotListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( MainFrameBase::OnListItemActivated ), NULL, this ); SlotListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( MainFrameBase::OnListItemDeselected ), NULL, this ); diff --git a/Main/Forms/Forms.h b/Main/Forms/Forms.h index dcdb7de..cbc6f6e 100644 --- a/Main/Forms/Forms.h +++ b/Main/Forms/Forms.h @@ -130,10 +130,8 @@ namespace TrueCrypt virtual void OnDownloadsMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } virtual void OnNewsMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } virtual void OnVersionHistoryMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } - virtual void OnLegalNoticesMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } - virtual void OnReportBugMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } - virtual void OnForumsMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } virtual void OnContactMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } + virtual void OnLegalNoticesMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } virtual void OnAboutMenuItemSelected( wxCommandEvent& event ){ event.Skip(); } virtual void OnListItemActivated( wxListEvent& event ){ event.Skip(); } virtual void OnListItemDeselected( wxListEvent& event ){ event.Skip(); } diff --git a/Main/Forms/MainFrame.cpp b/Main/Forms/MainFrame.cpp index 6eaa71a..cf313a8 100644 --- a/Main/Forms/MainFrame.cpp +++ b/Main/Forms/MainFrame.cpp @@ -7,6 +7,14 @@ */ #include "System.h" + +#ifdef TC_UNIX +#include +#include +#include +#include +#endif + #include "Common/SecurityToken.h" #include "Main/Main.h" #include "Main/Resources.h" @@ -31,7 +39,8 @@ namespace TrueCrypt MainFrame::MainFrame (wxWindow* parent) : MainFrameBase (parent), ListItemRightClickEventPending (false), SelectedItemIndex (-1), - SelectedSlotNumber (0) + SelectedSlotNumber (0), + ShowRequestFifo (-1) { wxBusyCursor busy; @@ -39,6 +48,25 @@ namespace TrueCrypt SetTitle (Application::GetName()); SetIcon (Resources::GetTrueCryptIcon()); +#if defined(TC_UNIX) && !defined(TC_MACOSX) + try + { + string fifoPath = GetShowRequestFifoPath(); + + remove (fifoPath.c_str()); + throw_sys_if (mkfifo (fifoPath.c_str(), S_IRUSR | S_IWUSR) == -1); + + ShowRequestFifo = open (fifoPath.c_str(), O_RDONLY | O_NONBLOCK); + throw_sys_if (ShowRequestFifo == -1); + } + catch (...) + { +#ifdef DEBUG + throw; +#endif + } +#endif + InitControls(); InitPreferences(); InitTaskBarIcon(); @@ -60,6 +88,18 @@ namespace TrueCrypt MainFrame::~MainFrame () { +#if defined(TC_UNIX) && !defined(TC_MACOSX) + if (ShowRequestFifo != -1) + { + try + { + close (ShowRequestFifo); + remove (string (GetShowRequestFifoPath()).c_str()); + } + catch (...) { } + } +#endif + Core->VolumeMountedEvent.Disconnect (this); Core->VolumeDismountedEvent.Disconnect (this); Gui->OpenVolumeSystemRequestEvent.Disconnect (this); @@ -1254,6 +1294,21 @@ namespace TrueCrypt Close (true); } } + +#if defined(TC_UNIX) && !defined(TC_MACOSX) + try + { + byte buf[128]; + if (read (ShowRequestFifo, buf, sizeof (buf)) > 0 && Gui->IsInBackgroundMode()) + Gui->SetBackgroundMode (false); + } + catch (...) + { +#ifdef DEBUG + throw; +#endif + } +#endif } catch (exception &e) { diff --git a/Main/Forms/MainFrame.h b/Main/Forms/MainFrame.h index cfd3070..5b775ab 100644 --- a/Main/Forms/MainFrame.h +++ b/Main/Forms/MainFrame.h @@ -23,6 +23,9 @@ namespace TrueCrypt virtual ~MainFrame (); void OnDeviceChange (const DirectoryPath &mountPoint = DirectoryPath()); +#ifdef TC_UNIX + static FilePath GetShowRequestFifoPath () { return Application::GetConfigFilePath (L".show-request-queue", true); } +#endif protected: enum @@ -84,7 +87,6 @@ namespace TrueCrypt void OnExitButtonClick (wxCommandEvent& event); void OnFavoriteVolumeMenuItemSelected (wxCommandEvent& event); void OnFaqMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"faq"); } - void OnForumsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"forum"); } void OnHiddenVolumeProtectionTriggered (shared_ptr protectedVolume); void OnHotkey (wxKeyEvent& event); void OnHotkeysMenuItemSelected (wxCommandEvent& event); @@ -112,7 +114,6 @@ namespace TrueCrypt void OnPreferencesUpdated (EventArgs &args); void OnRemoveKeyfilesMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::RemoveAllKeyfiles); } void OnRepairFilesystemMenuItemSelected( wxCommandEvent& event ) { CheckFilesystem (true); } - void OnReportBugMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"bugreport"); } void OnRestoreVolumeHeaderMenuItemSelected (wxCommandEvent& event); void OnSecurityTokenPreferencesMenuItemSelected (wxCommandEvent& event); void OnSelectDeviceAndMountMenuItemSelected (wxCommandEvent& event); @@ -164,6 +165,7 @@ namespace TrueCrypt auto_ptr mTimer; long SelectedItemIndex; VolumeSlotNumber SelectedSlotNumber; + int ShowRequestFifo; map VolumeActivityMap; }; } diff --git a/Main/Forms/TrueCrypt.fbp b/Main/Forms/TrueCrypt.fbp index 9d62a74..9d8fb6f 100644 --- a/Main/Forms/TrueCrypt.fbp +++ b/Main/Forms/TrueCrypt.fbp @@ -684,9 +684,6 @@ OnNewsMenuItemSelected - - none - 0 @@ -702,21 +699,6 @@ OnVersionHistoryMenuItemSelected - - - 0 - 1 - - wxID_ANY - wxITEM_NORMAL - Legal Notices - LegalNoticesMenuItem - none - - - OnLegalNoticesMenuItemSelected - - none @@ -727,27 +709,12 @@ wxID_ANY wxITEM_NORMAL - Report a Bug... - ReportBugMenuItem - none - - - OnReportBugMenuItemSelected - - - - - 0 - 1 - - wxID_ANY - wxITEM_NORMAL - Forums - ForumsMenuItem + Contact + ContactMenuItem none - OnForumsMenuItemSelected + OnContactMenuItemSelected @@ -757,17 +724,14 @@ wxID_ANY wxITEM_NORMAL - Contact... - ContactMenuItem + Legal Notices + LegalNoticesMenuItem none - OnContactMenuItemSelected + OnLegalNoticesMenuItemSelected - - none - 0 @@ -775,7 +739,7 @@ wxID_ABOUT wxITEM_NORMAL - About... + About AboutMenuItem none diff --git a/Main/GraphicUserInterface.cpp b/Main/GraphicUserInterface.cpp index 6ea8cdf..04426bd 100644 --- a/Main/GraphicUserInterface.cpp +++ b/Main/GraphicUserInterface.cpp @@ -11,7 +11,11 @@ #ifdef TC_UNIX #include #include +#include #include +#include +#include +#include #include #include "Platform/Unix/Process.h" #endif @@ -829,6 +833,31 @@ namespace TrueCrypt return false; } #endif + +#if defined(TC_UNIX) && !defined(TC_MACOSX) + try + { + int showFifo = open (string (MainFrame::GetShowRequestFifoPath()).c_str(), O_WRONLY | O_NONBLOCK); + throw_sys_if (showFifo == -1); + + byte buf[1] = { 1 }; + if (write (showFifo, buf, 1) == 1) + { + close (showFifo); + Application::SetExitCode (0); + return false; + } + + close (showFifo); + } + catch (...) + { +#ifdef DEBUG + throw; +#endif + } +#endif + wxLog::FlushActive(); Application::SetExitCode (1); Gui->ShowInfo (_("TrueCrypt is already running.")); diff --git a/Mount/Favorites.cpp b/Mount/Favorites.cpp index b921683..492eaac 100644 --- a/Mount/Favorites.cpp +++ b/Mount/Favorites.cpp @@ -426,7 +426,7 @@ namespace TrueCrypt wstring menuText = SingleStringToWide (favorite.Path); if (favorite.DisconnectedDevice) - menuText = wstring (L"(") + GetString ("FAVORITE_DISCONNECTED_DEV") + L")"; + menuText = favorite.Label.empty() ? wstring (L"(") + GetString ("FAVORITE_DISCONNECTED_DEV") + L")" : L""; if (!favorite.Label.empty()) { diff --git a/Mount/Mount.c b/Mount/Mount.c index ba58d25..081441b 100644 --- a/Mount/Mount.c +++ b/Mount/Mount.c @@ -4,7 +4,7 @@ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License Agreement for Encryption for the Masses'. Modifications and additions to the original source code (contained in this file) and all other portions - of this file are Copyright (c) 2003-2009 TrueCrypt Developers Association + of this file are Copyright (c) 2003-2012 TrueCrypt Developers Association and are governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ @@ -4665,18 +4665,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa ExtractCommandLine (hwndDlg, (char *) lParam); - if (ComServerMode) - { - InitDialog (hwndDlg); - - if (!ComServerMain ()) - { - handleWin32Error (hwndDlg); - exit (1); - } - exit (0); - } - try { BootEncStatus = BootEncObj->GetStatus(); @@ -4697,6 +4685,18 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa RestoreDefaultKeyFilesParam (); } + if (ComServerMode) + { + InitDialog (hwndDlg); + + if (!ComServerMain ()) + { + handleWin32Error (hwndDlg); + exit (1); + } + exit (0); + } + if (CmdMountOptionsValid) mountOptions = CmdMountOptions; @@ -5336,7 +5336,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa } AppendMenuW (popup, MF_STRING, IDM_MOUNTALL, GetString ("IDC_MOUNTALL")); AppendMenuW (popup, MF_STRING, IDM_MOUNT_FAVORITE_VOLUMES, GetString ("IDM_MOUNT_FAVORITE_VOLUMES")); - AppendMenuW (popup, MF_STRING, IDM_UNMOUNTALL, GetString ("IDM_UNMOUNTALL")); + AppendMenuW (popup, MF_STRING, IDM_UNMOUNTALL, GetString ("IDC_UNMOUNTALL")); AppendMenu (popup, MF_SEPARATOR, 0, NULL); for (n = 0; n < 2; n++) @@ -5478,7 +5478,10 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa vol += 4; if (vol[1] == L':' && i == (vol[0] - (vol[0] <= L'Z' ? L'A' : L'a'))) + { UnmountVolume (hwndDlg, m, TRUE); + WarningBalloon ("HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE", "HOST_DEVICE_REMOVAL_DISMOUNT_WARN"); + } } } } @@ -5503,7 +5506,10 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa OPEN_TEST_STRUCT ots; if (!OpenDevice (volp, &ots, FALSE)) + { UnmountVolume (hwndDlg, m, TRUE); + WarningBalloon ("HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE", "HOST_DEVICE_REMOVAL_DISMOUNT_WARN"); + } } } } @@ -5833,6 +5839,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa if (CheckSysEncMountWithoutPBA ("", FALSE)) { mountOptions = defaultMountOptions; + mountOptions.PartitionInInactiveSysEncScope = TRUE; bPrebootPasswordDlgMode = TRUE; if (CheckMountList ()) @@ -6111,11 +6118,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa Applink ("homepage", TRUE, ""); return 1; } - else if (lw == IDM_FORUMS) - { - Applink ("forum", TRUE, ""); - return 1; - } else if (lw == IDM_ONLINE_TUTORIAL) { Applink ("tutorial", TRUE, ""); @@ -6146,11 +6148,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa Applink ("history", TRUE, ""); return 1; } - else if (lw == IDM_BUGREPORT) - { - Applink ("bugreport", TRUE, ""); - return 1; - } else if (lw == IDM_ANALYZE_SYSTEM_CRASH) { if (!IsAdmin() && IsUacSupported()) @@ -6994,7 +6991,6 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm BOOL TaskBarIconAdd (HWND hwnd) { - BOOL res; NOTIFYICONDATAW tnid; ZeroMemory (&tnid, sizeof (tnid)); @@ -7019,16 +7015,12 @@ BOOL TaskBarIconAdd (HWND hwnd) ScreenDPI >= 120 ? 0 : 16, ScreenDPI >= 120 ? 0 : 16, (ScreenDPI >= 120 ? LR_DEFAULTSIZE : 0) + | LR_SHARED | (nCurrentOS != WIN_2000 ? LR_DEFAULTCOLOR : LR_VGACOLOR)); // Windows 2000 cannot display more than 16 fixed colors in notification tray wcscpy (tnid.szTip, L"TrueCrypt"); - res = Shell_NotifyIconW (NIM_ADD, &tnid); - - if (tnid.hIcon) - DestroyIcon (tnid.hIcon); - - return res; + return Shell_NotifyIconW (NIM_ADD, &tnid); } @@ -7075,6 +7067,7 @@ BOOL TaskBarIconChange (HWND hwnd, int iconId) ScreenDPI >= 120 ? 0 : 16, ScreenDPI >= 120 ? 0 : 16, (ScreenDPI >= 120 ? LR_DEFAULTSIZE : 0) + | LR_SHARED | (nCurrentOS != WIN_2000 ? LR_DEFAULTCOLOR : LR_VGACOLOR)); // Windows 2000 cannot display more than 16 fixed colors in notification tray return Shell_NotifyIcon (NIM_MODIFY, &tnid); @@ -8147,6 +8140,13 @@ static BOOL CALLBACK PerformanceSettingsDlgProc (HWND hwndDlg, UINT msg, WPARAM case IDOK: { + if (IsNonInstallMode()) + { + Error ("FEATURE_REQUIRES_INSTALLATION"); + EndDialog (hwndDlg, IDCANCEL); + return 1; + } + BOOL disableHW = !IsDlgButtonChecked (hwndDlg, IDC_ENABLE_HARDWARE_ENCRYPTION); try @@ -8640,7 +8640,7 @@ void AnalyzeKernelMiniDump (HWND hwndDlg) if (_abs64 (miniDumpTime.QuadPart - memDumpTime.QuadPart) < 10I64 * 1000 * 1000 * 60 * 5) { // Rename MEMORY.DMP file first as it can be deleted by Windows when system crash dialog is closed - tmpDumpPath = memDumpPath + TC_APP_NAME; + tmpDumpPath = memDumpPath + ".true_crypt.dmp"; // Application name must be mangled to avoid interfering with crash analysis if (MoveFile (memDumpPath.c_str(), tmpDumpPath.c_str())) dumpPath = tmpDumpPath; diff --git a/Mount/Mount.rc b/Mount/Mount.rc index ee128ec..5229c04 100644 --- a/Mount/Mount.rc +++ b/Mount/Mount.rc @@ -421,8 +421,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 7,1,0,0 - PRODUCTVERSION 7,1,0,0 + FILEVERSION 7,1,1,0 + PRODUCTVERSION 7,1,1,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -439,11 +439,11 @@ BEGIN BEGIN VALUE "CompanyName", "TrueCrypt Foundation" VALUE "FileDescription", "TrueCrypt" - VALUE "FileVersion", "7.1" + VALUE "FileVersion", "7.1a" VALUE "LegalTrademarks", "TrueCrypt" VALUE "OriginalFilename", "TrueCrypt.exe" VALUE "ProductName", "TrueCrypt" - VALUE "ProductVersion", "7.1" + VALUE "ProductVersion", "7.1a" END END BLOCK "VarFileInfo" @@ -596,17 +596,13 @@ BEGIN MENUITEM "TrueCrypt Website", IDM_WEBSITE MENUITEM "Downloads", IDM_TC_DOWNLOADS MENUITEM "News", IDM_NEWS - MENUITEM SEPARATOR MENUITEM "Version History", IDM_VERSION_HISTORY - MENUITEM "Legal Notices", IDM_LICENSE MENUITEM SEPARATOR - MENUITEM "Report a Bug...", IDM_BUGREPORT MENUITEM "Analyze a System Crash...", IDM_ANALYZE_SYSTEM_CRASH MENUITEM SEPARATOR - MENUITEM "Forums", IDM_FORUMS - MENUITEM "Contact...", IDM_CONTACT - MENUITEM SEPARATOR - MENUITEM "About...", IDM_ABOUT + MENUITEM "Contact", IDM_CONTACT + MENUITEM "Legal Notices", IDM_LICENSE + MENUITEM "About", IDM_ABOUT END MENUITEM "&Homepage ", IDM_HOMEPAGE END diff --git a/Mount/resource.h b/Mount/resource.h index c5c02ab..28b83c6 100644 --- a/Mount/resource.h +++ b/Mount/resource.h @@ -161,67 +161,65 @@ #define IDM_ABOUT 40002 #define IDM_UNMOUNT_VOLUME 40003 #define IDM_CLEAR_HISTORY 40004 -#define IDM_FORUMS 40005 -#define IDM_BENCHMARK 40006 -#define IDM_TRAVELER 40007 -#define IDM_MOUNT_VOLUME_OPTIONS 40008 -#define IDM_FAQ 40009 -#define IDM_REFRESH_DRIVE_LETTERS 40010 -#define IDM_DEFAULT_KEYFILES 40011 -#define IDM_WEBSITE 40012 -#define IDM_MOUNTALL 40013 -#define IDM_UNMOUNTALL 40014 -#define IDM_MOUNT_VOLUME 40015 -#define IDM_CHANGE_PASSWORD 40016 -#define IDM_VOLUME_WIZARD 40017 -#define IDM_CREATE_VOLUME 40018 -#define IDM_WIPE_CACHE 40019 -#define IDM_PREFERENCES 40020 -#define IDM_LICENSE 40021 -#define IDM_SELECT_FILE 40022 -#define IDM_SELECT_DEVICE 40023 -#define IDM_VOLUME_PROPERTIES 40024 -#define IDM_LANGUAGE 40025 -#define IDM_MOUNT_FAVORITE_VOLUMES 40026 -#define IDM_BACKUP_VOL_HEADER 40027 -#define IDM_RESTORE_VOL_HEADER 40028 -#define IDM_HOTKEY_SETTINGS 40029 -#define IDM_TC_DOWNLOADS 40030 -#define IDM_NEWS 40031 -#define IDM_BUGREPORT 40032 -#define IDM_CONTACT 40033 -#define IDM_VERSION_HISTORY 40034 -#define IDM_HOMEPAGE 40035 -#define IDM_TEST_VECTORS 40036 -#define IDM_ADD_REMOVE_VOL_KEYFILES 40037 -#define IDM_REMOVE_ALL_KEYFILES_FROM_VOL 40038 -#define IDM_CHANGE_HEADER_KEY_DERIV_ALGO 40039 -#define IDM_KEYFILE_GENERATOR 40040 -#define IDM_ONLINE_TUTORIAL 40041 -#define IDM_ONLINE_HELP 40042 -#define IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO 40043 -#define IDM_CHANGE_SYS_PASSWORD 40044 -#define IDM_CREATE_RESCUE_DISK 40045 -#define IDM_PERMANENTLY_DECRYPT_SYS 40046 -#define IDM_VERIFY_RESCUE_DISK 40047 -#define IDM_SYSTEM_ENCRYPTION_STATUS 40048 -#define IDM_ENCRYPT_SYSTEM_DEVICE 40049 -#define IDM_SYSENC_RESUME 40050 -#define IDM_MOUNT_SYSENC_PART_WITHOUT_PBA 40051 -#define IDM_CREATE_HIDDEN_OS 40052 -#define IDM_TOKEN_PREFERENCES 40053 -#define IDM_CLOSE_ALL_TOKEN_SESSIONS 40054 -#define IDM_SYS_ENC_SETTINGS 40055 -#define IDM_SYSENC_SETTINGS 40056 -#define IDM_RESUME_INTERRUPTED_PROC 40057 -#define IDM_MANAGE_TOKEN_KEYFILES 40058 -#define IDM_SYS_FAVORITES_SETTINGS 40059 -#define IDM_ORGANIZE_FAVORITES 40060 -#define IDM_ORGANIZE_SYSTEM_FAVORITES 40061 -#define IDM_ADD_VOLUME_TO_FAVORITES 40062 -#define IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES 40063 -#define IDM_PERFORMANCE_SETTINGS 40064 -#define IDM_ANALYZE_SYSTEM_CRASH 40065 +#define IDM_BENCHMARK 40005 +#define IDM_TRAVELER 40006 +#define IDM_MOUNT_VOLUME_OPTIONS 40007 +#define IDM_FAQ 40008 +#define IDM_REFRESH_DRIVE_LETTERS 40009 +#define IDM_DEFAULT_KEYFILES 40010 +#define IDM_WEBSITE 40011 +#define IDM_MOUNTALL 40012 +#define IDM_UNMOUNTALL 40013 +#define IDM_MOUNT_VOLUME 40014 +#define IDM_CHANGE_PASSWORD 40015 +#define IDM_VOLUME_WIZARD 40016 +#define IDM_CREATE_VOLUME 40017 +#define IDM_WIPE_CACHE 40018 +#define IDM_PREFERENCES 40019 +#define IDM_LICENSE 40020 +#define IDM_SELECT_FILE 40021 +#define IDM_SELECT_DEVICE 40022 +#define IDM_VOLUME_PROPERTIES 40023 +#define IDM_LANGUAGE 40024 +#define IDM_MOUNT_FAVORITE_VOLUMES 40025 +#define IDM_BACKUP_VOL_HEADER 40026 +#define IDM_RESTORE_VOL_HEADER 40027 +#define IDM_HOTKEY_SETTINGS 40028 +#define IDM_TC_DOWNLOADS 40029 +#define IDM_NEWS 40030 +#define IDM_CONTACT 40031 +#define IDM_VERSION_HISTORY 40032 +#define IDM_HOMEPAGE 40033 +#define IDM_TEST_VECTORS 40034 +#define IDM_ADD_REMOVE_VOL_KEYFILES 40035 +#define IDM_REMOVE_ALL_KEYFILES_FROM_VOL 40036 +#define IDM_CHANGE_HEADER_KEY_DERIV_ALGO 40037 +#define IDM_KEYFILE_GENERATOR 40038 +#define IDM_ONLINE_TUTORIAL 40039 +#define IDM_ONLINE_HELP 40040 +#define IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO 40041 +#define IDM_CHANGE_SYS_PASSWORD 40042 +#define IDM_CREATE_RESCUE_DISK 40043 +#define IDM_PERMANENTLY_DECRYPT_SYS 40044 +#define IDM_VERIFY_RESCUE_DISK 40045 +#define IDM_SYSTEM_ENCRYPTION_STATUS 40046 +#define IDM_ENCRYPT_SYSTEM_DEVICE 40047 +#define IDM_SYSENC_RESUME 40048 +#define IDM_MOUNT_SYSENC_PART_WITHOUT_PBA 40049 +#define IDM_CREATE_HIDDEN_OS 40050 +#define IDM_TOKEN_PREFERENCES 40051 +#define IDM_CLOSE_ALL_TOKEN_SESSIONS 40052 +#define IDM_SYS_ENC_SETTINGS 40053 +#define IDM_SYSENC_SETTINGS 40054 +#define IDM_RESUME_INTERRUPTED_PROC 40055 +#define IDM_MANAGE_TOKEN_KEYFILES 40056 +#define IDM_SYS_FAVORITES_SETTINGS 40057 +#define IDM_ORGANIZE_FAVORITES 40058 +#define IDM_ORGANIZE_SYSTEM_FAVORITES 40059 +#define IDM_ADD_VOLUME_TO_FAVORITES 40060 +#define IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES 40061 +#define IDM_PERFORMANCE_SETTINGS 40062 +#define IDM_ANALYZE_SYSTEM_CRASH 40063 // Next default values for new objects // @@ -229,7 +227,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 118 -#define _APS_NEXT_COMMAND_VALUE 40066 +#define _APS_NEXT_COMMAND_VALUE 40064 #define _APS_NEXT_CONTROL_VALUE 1137 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/Readme.txt b/Readme.txt index d4e6399..04c26b9 100644 --- a/Readme.txt +++ b/Readme.txt @@ -1,4 +1,4 @@ -This archive contains the source code of TrueCrypt 7.1. +This archive contains the source code of TrueCrypt 7.1a. Important @@ -23,8 +23,6 @@ I. Windows II. Linux and Mac OS X Requirements for Building TrueCrypt for Linux and Mac OS X Instructions for Building TrueCrypt for Linux and Mac OS X - Requirements for Running TrueCrypt on Linux - Requirements for Running TrueCrypt on Mac OS X III. FreeBSD and OpenSolaris @@ -156,21 +154,6 @@ library, use the 'NOGUI' parameter: $ make NOGUI=1 WXSTATIC=1 -Requirements for Running TrueCrypt on Linux: --------------------------------------------- - -- Kernel including FUSE, device mapper, and encryption modules -- FUSE library (available at http://fuse.sourceforge.net) -- device mapper tools (available at http://sources.redhat.com/dm) - - -Requirements for Running TrueCrypt on Mac OS X: ------------------------------------------------ - -- Mac OS X 10.4 or compatible -- MacFUSE 1.3 or compatible (available at http://code.google.com/p/macfuse) or - OSXFUSE 2.3 or compatible (available at http://osxfuse.github.com) - III. FreeBSD and OpenSolaris ============================ @@ -202,10 +185,10 @@ Copyright Information --------------------- This software as a whole: -Copyright (c) 2011 TrueCrypt Developers Association. All rights reserved. +Copyright (c) 2012 TrueCrypt Developers Association. All rights reserved. Portions of this software: -Copyright (c) 2003-2011 TrueCrypt Developers Association. All rights reserved. +Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved. Copyright (c) 1998-2000 Paul Le Roux. All rights reserved. Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved. Copyright (c) 2002-2004 Mark Adler. All rights reserved. @@ -215,14 +198,8 @@ source code. Trademark Information --------------------- -TrueCrypt and the TrueCrypt logo are registered trademarks. -Note: The goal is not to monetize the name or the product, but to protect -the reputation of TrueCrypt, and to prevent support issues and other kinds -of issues that might arise from the existence of similar products with -the same or similar name. Even though TrueCrypt is a trademark, TrueCrypt -is and will remain open-source and free software. - -Any other trademarks are the sole property of their respective owners. +Any trademarks contained in the source code, binaries, and/or in the +documentation, are the sole property of their respective owners. diff --git a/Release/Setup Files/License.txt b/Release/Setup Files/License.txt index b367066..b2103ab 100644 --- a/Release/Setup Files/License.txt +++ b/Release/Setup Files/License.txt @@ -93,15 +93,6 @@ Your Product. any other names confusingly similar to the name TrueCrypt (e.g., True-Crypt, True Crypt, TruKrypt, etc.) - Note: TrueCrypt and the TrueCrypt logo are registered - trademarks. The goal is not to monetize the name or the - product, but to protect the reputation of TrueCrypt, and to - prevent support issues and other kinds of issues that might - arise from the existence of similar products with the same - or similar name. Even though TrueCrypt and the TrueCrypt - logo are trademarks, TrueCrypt is and will remain - open-source and free software. - All occurrences of the name TrueCrypt that could reasonably be considered to identify Your Product must be removed from Your Product and from any associated materials. Logo(s) @@ -110,7 +101,7 @@ Your Product. confusingly similar to any of the TrueCrypt logos (including, but not limited to, the non-textual logo consisting primarily of a key in stylized form) or - portion(s) thereof. All graphics contained in This Product + portion(s) thereof. All graphics contained in This Product (logos, icons, etc.) must be removed from Your Product (or from Your modified version of This Product) and from any associated materials. @@ -189,9 +180,6 @@ Your Product. text(s) of the license(s) must be included with every copy of Your Product that You make and distribute. - Note: If you cannot comply with the above requirements, you - may contact licensing@truecrypt.org. - e. You must not change the license terms of This Product in any way (adding any new terms is considered changing the license terms even if the original terms are retained), @@ -212,9 +200,6 @@ Your Product. Your Product is not distributed (i.e., Your Product is available only to You). -Note: If you cannot comply with Subsection III.1.d, you may -contact licensing@truecrypt.org. - IV. Disclaimer of Liability, Disclaimer of Warranty, @@ -223,23 +208,23 @@ Indemnification You expressly acknowledge and agree to the following: 1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY -APPLICABLE COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY WHO MAY -COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, AS -MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER PARTY -FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, -INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, CORRUPTION -OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR THIRD PARTIES, A -FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS -INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT -(INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, +APPLICABLE INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY WHO +MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, +AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER +PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY +DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR +THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY +OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR +BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, +TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, ARISING OUT OF THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO -ANY (CO)AUTHOR, COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY. +ANY (CO)AUTHOR, INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY. 2. THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT @@ -260,7 +245,7 @@ IS SOLELY YOUR RESPONSIBILITY TO COMPLY WITH ANY APPLICABLE REGULATIONS, RESTRICTIONS, AND LAWS. 4. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS -PRODUCT, AND APPLICABLE COPYRIGHT/TRADEMARK OWNERS, HARMLESS +PRODUCT, AND APPLICABLE INTELLECTUAL-PROPERTY OWNERS, HARMLESS FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, @@ -282,19 +267,6 @@ automatically and immediately terminates Your rights under This License and may constitute trademark infringement (which may be prosecuted). -TrueCrypt is a trademark registered with the World Intellectual -Property Organization, an agency of the United Nations, -(international trademark registration), in the U.S. Patent and -Trademark Office, and in the trademark offices of other -countries. All TrueCrypt logos are trademarks and the -non-textual TrueCrypt logo consisting primarily of a key in -stylized form is a trademark registered in the U.S. Patent and -Trademark Office. - -Note: The goal is not to monetize the name or the product, but -to protect the reputation of TrueCrypt. TrueCrypt is and will -remain open-source and free software. - VI. General Terms and Conditions, Miscellaneous Provisions diff --git a/Release/Setup Files/TrueCrypt User Guide.pdf b/Release/Setup Files/TrueCrypt User Guide.pdf index cb207ba..e7d2be7 100644 Binary files a/Release/Setup Files/TrueCrypt User Guide.pdf and b/Release/Setup Files/TrueCrypt User Guide.pdf differ diff --git a/Resources/Texts/License.rtf b/Resources/Texts/License.rtf index 67276a9..f3c2a48 100644 --- a/Resources/Texts/License.rtf +++ b/Resources/Texts/License.rtf @@ -1,13 +1,13 @@ {\rtf1\ansi\deff0\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fnil\fprq0\fcharset0 Tahoma{\*\falt sans-serif};}{\f3\froman\fprq2\fcharset0 Thorndale{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Albany{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Arial Unicode MS;}{\f6\fnil\fprq2\fcharset0 HG Mincho Light J{\*\falt msmincho};}{\f7\fnil\fprq2\fcharset0 Tahoma;}{\f8\fnil\fprq0\fcharset0 Tahoma;}{\f9\fnil\fprq2\fcharset0 Arial Unicode MS;}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red0\green0\blue255;\red128\green128\blue128;} +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fnil\fprq0\fcharset0 Tahoma{\*\falt sans-serif};}{\f3\froman\fprq2\fcharset0 Thorndale{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Albany{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 Lucida Sans Unicode;}{\f6\fnil\fprq2\fcharset0 HG Mincho Light J{\*\falt msmincho};}{\f7\fnil\fprq2\fcharset0 Tahoma;}{\f8\fnil\fprq0\fcharset0 Tahoma;}{\f9\fnil\fprq2\fcharset0 Arial Unicode MS;}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;} {\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033\snext1 Normal;} {\s2\sb240\sa283\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af9\afs28\lang255\ltrch\dbch\af6\langfe255\hich\f4\fs28\lang1033\loch\f4\fs28\lang1033\sbasedon1\snext3 Heading;} {\s3\sa283\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033\sbasedon1\snext3 Body Text;} {\s4\sa283\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af8\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033\sbasedon3\snext4 List;} {\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af8\afs24\lang255\ai\ltrch\dbch\af2\langfe255\hich\f2\fs24\lang1033\i\loch\f2\fs24\lang1033\i\sbasedon1\snext5 caption;} {\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af8\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033\sbasedon1\snext6 Index;} -{\s7\sa283\brdrb\brdrdb\brdrw15\brdrcf4\brsp0{\*\brdrb\brdlncol4\brdlnin1\brdlnout1\brdlndist20}\brsp0\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs12\lang1033\loch\f2\fs12\lang1033\sbasedon1\snext3 Horizontal Line;} +{\s7\sa283\brdrb\brdrdb\brdrw15\brdrcf3\brsp0{\*\brdrb\brdlncol3\brdlnin1\brdlnout1\brdlndist20}\brsp0\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs12\lang1033\loch\f2\fs12\lang1033\sbasedon1\snext3 Horizontal Line;} {\s8\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\i\loch\f2\fs16\lang1033\i\sbasedon1\snext8 envelope return;} {\s9\sa283\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033\sbasedon3\snext9 Table Contents;} {\s10\cf0{\*\tlswg8236}\tqc\tx4818{\*\tlswg8236}\tqr\tx9637{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033\sbasedon1\snext10 footer;} @@ -75,11 +75,9 @@ ber of computers/systems for non-commercial and/or commercial purposes.\line \li III.2) and if You comply with all other applicable terms and conditions of this License, You may modify This Product (thus forming Your Product), derive new works from This Product or portions thereof (thus forming Your Product), include This Product or p ortions thereof in another product (thus forming Your Product, unless defined otherwise in Chapter I), and You may use (for non-commercial and/or commercial purposes), copy, and/or distribute Your Product.} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f2\fs16\f2\fs16\f2\fs16 a.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls2\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 The name of Your Product (or of Your modified version of This Product) must not contain the name TrueCrypt (for example, the following names are not allowed: TrueCrypt, TrueCrypt+, TrueCrypt Professional, iTrueCrypt, etc.) nor any other names confusingly s -imilar to the name TrueCrypt (e.g., True-Crypt, True Crypt, TruKrypt, etc.)\line \line Note: TrueCrypt and the TrueCrypt logo are registered trademarks. The goal is not to monetize the name or the product, but to protect the reputation of TrueCrypt, and to prevent s -upport issues and other kinds of issues that might arise from the existence of similar products with the same or similar name. Even though TrueCrypt and the TrueCrypt logo are trademarks, TrueCrypt is and will remain open-source and free software.\line \line All occ -urrences of the name TrueCrypt that could reasonably be considered to identify Your Product must be removed from Your Product and from any associated materials. Logo(s) included in (or attached to) Your Product (and in/to associated materials) must not inc -orporate and must not be confusingly similar to any of the TrueCrypt logos (including, but not limited to, the non-textual logo consisting primarily of a key in stylized form) or portion(s) thereof. All graphics contained in This Product (logos, icons, etc -.) must be removed from Your Product (or from Your modified version of This Product) and from any associated materials.} +imilar to the name TrueCrypt (e.g., True-Crypt, True Crypt, TruKrypt, etc.)\line \line All occurrences of the name TrueCrypt that could reasonably be considered to identify Your Product must be removed from Your Product and from any associated materials. Logo(s) included in (or attached to) Your Product (and in/to assoc +iated materials) must not incorporate and must not be confusingly similar to any of the TrueCrypt logos (including, but not limited to, the non-textual logo consisting primarily of a key in stylized form) or portion(s) thereof. All graphics contained in Th +is Product (logos, icons, etc.) must be removed from Your Product (or from Your modified version of This Product) and from any associated materials.} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f2\fs16\f2\fs16\f2\fs16 b.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls2\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 The following phrases must be removed from Your Product and from any associated materials, except the text of this License: "A TrueCrypt Foundation Release", "Released by TrueCrypt Foundation", "This is a TrueCrypt Foundation release."} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f2\fs16\f2\fs16\f2\fs16 c.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls2\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 Phrase "{\ltrch\hich\i\loch\i Based on TrueCrypt, freely available at http://www.truecrypt.org/}" must be displayed by Your Product (if technically feasible) and contained in its documentation. Alternatively, if This Product or its portion You included in Your Product constitute s only a minor portion of Your Product, phrase "{\ltrch\hich\i\loch\i Portions of this product are based in part on TrueCrypt, freely available at http://www.truecrypt.org/}" may be displayed instead. In each of the cases mentioned above in this paragraph, "{\ltrch\hich\i\loch\i http://www.truecrypt. @@ -95,63 +93,61 @@ ase to distribute Your Product).\line \line The source code of Your Product must modify the program.\line \line Portions of the source code of Your Product not contained in This Product (e.g., portions added by You in creating Your Product, whether created by You or by third parties) must be available under license(s) that (however, see also Sub section III.1.e) allow(s) anyone to modify and derive new works from the portions of the source code that are not contained in This Product and to use, copy, and redistribute such modifications and/or derivative works. The license(s) must be perpetual, non -exclusive, royalty-free, no-charge, and worldwide, and must not invalidate, weaken, restrict, interpret, amend, modify, interfere with or otherwise affect any part, term, provision, or clause of this License. The text(s) of the license(s) must be included - with every copy of Your Product that You make and distribute.\line \line Note: If you cannot comply with the above requirements, you may contact {\cf3\ul\ulc0 licensing@truecrypt.org}.} + with every copy of Your Product that You make and distribute.} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f2\fs16\f2\fs16\f2\fs16 e.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls2\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 You must not change the license terms of This Product in any way (adding any new terms is considered changing the license terms even if the original terms are retained), which means, e.g., that no part of This Product may be put under another license. You must keep intact all the legal notices contained in the source code files. You must include the following items with every copy of Your Product that You make and distribute: a clear and conspicuous notice stating that Your Product or portion(s) thereof is/ are governed by this version of the TrueCrypt License, a verbatim copy of this version of the TrueCrypt License (as contained herein), a clear and conspicuous notice containing information about where the included copy of the License can be found, and an a ppropriate copyright notice.} -\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033{\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0{\ltrch\hich\b\loch\b 2}}{\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 . You are not obligated to comply with Subsection III.1.d if Your Product is not distributed (i.e., Your Product is available only to You).\line \line Note: If you cannot comply with Subsection III.1.d, you may contact {\cf3\ul\ulc0 licensing@truecrypt.org}.\line \line \line \line {\ltrch\hich\b\loch\b IV. Disclaimer of -Liability, Disclaimer of Warranty, Indemnification}\line \line You expressly acknowledge and agree to the following:\line \line {\ltrch\hich\b\loch\b 1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY APPLICABLE COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY WHO MAY COPY AND/OR (RE)DISTRIBUT -E THIS PRODUCT OR PORTIONS THEREOF, AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUD -ING, BUT NOT LIMITED TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR THIRD PARTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STR -ICT LIABILITY, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, ARISING OUT OF THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PROD -UCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WERE PREDICTABLE OR KNOWN TO ANY (CO)AUTHOR, COPYRIGHT/TRADEMARK OWNER, OR ANY OTHER PARTY.}\line \line {\ltrch\hich\b\loch\b 2. THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER - EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THIS PRODUCT IS WITH YOU. SHOULD THIS PRODUCT PR -OVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.}\line \line {\ltrch\hich\b\loch\b 3}. THIS PRODUCT MAY INCORPORATE IMPLEMENTATIONS OF CRYPTOGRAPHIC ALGORITHMS THAT ARE REGULATED (E.G., SUBJECT TO EXPORT/IMPORT CONTROL REGULATIONS) OR ILLEGAL IN SOME CO -UNTRIES. IT IS SOLELY YOUR RESPONSIBILITY TO VERIFY THAT IT IS LEGAL TO IMPORT AND/OR (RE)EXPORT AND/OR USE THIS PRODUCT (OR PORTIONS THEREOF) IN COUNTRIES WHERE YOU INTEND TO USE IT AND/OR TO WHICH YOU INTEND TO IMPORT IT AND/OR FROM WHICH YOU INTEND TO E -XPORT IT, AND IT IS SOLELY YOUR RESPONSIBILITY TO COMPLY WITH ANY APPLICABLE REGULATIONS, RESTRICTIONS, AND LAWS.\line \line {\ltrch\hich\b\loch\b 4}. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS PRODUCT, AND APPLICABLE COPYRIGHT/TRADEMARK OWNERS, HARMLESS FROM AND AGAINST - ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES (INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, ACTIONS, PROCEEDINGS, AND SUITS, DIRECTLY RELATED TO OR ARISING OUT OF YOUR USE, INABILITY TO - USE, COPYING, (RE)DISTRIBUTION, IMPORT AND/OR (RE)EXPORT OF THIS PRODUCT (OR PORTIONS THEREOF) AND/OR YOUR BREACH OF ANY TERM OF THIS LICENSE.\line \line \line \line {\ltrch\hich\b\loch\b V. Trademarks}\line \line This License does not grant permission to use trademarks associated with (or applying to) This - Product, except for fair use as defined by applicable law and except for use expressly permitted or required by this License. Any attempt otherwise to use trademarks associated with (or applying to) This Product automatically and immediately terminates Yo -ur rights under This License and may constitute trademark infringement (which may be prosecuted).\line \line TrueCrypt is a trademark registered with the World Intellectual Property Organization, an agency of the United Nations, (international trademark registration -), in the U.S. Patent and Trademark Office, and in the trademark offices of other countries. All TrueCrypt logos are trademarks and the non-textual TrueCrypt logo consisting primarily of a key in stylized form is a trademark registered in the U.S. Patent a -nd Trademark Office.\line \line Note: The goal is not to monetize the name or the product, but to protect the reputation of TrueCrypt. TrueCrypt is and will remain open-source and free software.\line \line \line \line {\ltrch\hich\b\loch\b VI. General Terms and Conditions, Miscellaneous Provisions}\line \line {\ltrch\hich\b\loch\b 1}. ANYON -E WHO USES AND/OR COPIES AND/OR MODIFIES AND/OR CREATES DERIVATIVE WORKS OF AND/OR (RE)DISTRIBUTES THIS PRODUCT, OR ANY PORTION(S) THEREOF, IS, BY SUCH ACTION(S), AGREEING TO BE BOUND BY AND ACCEPTING ALL TERMS AND CONDITIONS OF THIS LICENSE (AND THE RESPO -NSIBILITIES AND OBLIGATIONS CONTAINED IN THIS LICENSE). IF YOU DO NOT ACCEPT (AND AGREE TO BE BOUND BY) ALL TERMS AND CONDITIONS OF THIS LICENSE, DO NOT USE, COPY, MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) THER -EOF.\line \line {\ltrch\hich\b\loch\b 2}. YOU MAY NOT USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) THEREOF, EXCEPT AS EXPRESSLY PROVIDED IN THIS LICENSE (EVEN IF APPLICABLE LAW GIVES YOU MORE RIGHTS). ANY ATTEMPT (EVEN IF PERMITT -ED BY APPLICABLE LAW) OTHERWISE TO USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) THEREOF, AUTOMATICALLY AND IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN CONSTITUTE COPYRIGHT INFRIN -GEMENT (WHICH MAY BE PROSECUTED). ANY CONDITIONS AND RESTRICTIONS CONTAINED IN THIS LICENSE ARE ALSO LIMITATIONS ON THE SCOPE OF THIS LICENSE AND ALSO DEFINE THE SCOPE OF YOUR RIGHTS UNDER THIS LICENSE. YOUR FAILURE TO COMPLY WITH THE TERMS AND CONDITIONS -OF THIS LICENSE OR FAILURE TO PERFORM ANY APPLICABLE OBLIGATION IMPOSED BY THIS LICENSE AUTOMATICALLY AND IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN CAUSE OR BE CONSIDERED COPYRIGHT INFRINGEMENT (WHICH MAY BE PROSECUTED). NOTHING IN THIS - LICENSE SHALL IMPLY OR BE CONSTRUED AS A PROMISE, OBLIGATION, OR COVENANT NOT TO SUE FOR COPYRIGHT OR TRADEMARK INFRINGEMENT IF YOU DO NOT COMPLY WITH THE TERMS AND CONDITIONS OF THIS LICENSE.\line \line {\ltrch\hich\b\loch\b 3}. This License does not constitute or imply a waiver of any -intellectual property rights except as may be otherwise expressly provided in this License. This License does not transfer, assign, or convey any intellectual property rights (e.g., it does not transfer ownership of copyrights or trademarks).\line \line {\ltrch\hich\b\loch\b 4}. Subject t -o the terms and conditions of this License, You may allow a third party to use Your copy of This Product (or a copy that You make and distribute, or Your Product) provided that the third party explicitly accepts and agrees to be bound by all terms and cond -itions of this License and the third party is not prohibited from using This Product (or portions thereof) by this License (see, e.g., Section VI.7) or by applicable law. However, You are not obligated to ensure that the third party accepts (and agrees to -be bound by all terms of) this License if You distribute only the self-extracting package (containing This Product) that does not allow the user to install (nor extract) the files contained in the package until he or she accepts and agrees to be bound by a -ll terms and conditions of this License.\line \line {\ltrch\hich\b\loch\b 5}. Without specific prior written permission from the authors of This Product (or from their common representative), You must not use the name of This Product, the names of the authors of This Product, or the names - of the legal entities (or informal groups) of which the authors were/are members/employees, to endorse or promote Your Product or any work in which You include a modified or unmodified version of This Product, or to endorse or promote You or Your affiliat -es, or in a way that might suggest that Your Product (or any work in which You include a modified or unmodified version of This Product), You, or Your affiliates is/are endorsed by one or more authors of This Product, or in a way that might suggest that on -e or more authors of This Product is/are affiliated with You (or Your affiliates) or directly participated in the creation of Your Product or of any work in which You include a modified or unmodified version of This Product.\line \line {\ltrch\hich\b\loch\b 6}. {\ltrch\hich\b\loch\b IF YOU ARE NOT SURE WHETHER - YOU UNDERSTAND ALL PARTS OF THIS LICENSE OR IF YOU ARE NOT SURE WHETHER YOU CAN COMPLY WITH ALL TERMS AND CONDITIONS OF THIS LICENSE, YOU MUST NOT USE, COPY, MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) OF IT. YO -U SHOULD CONSULT WITH A LAWYER.}\line \line {\ltrch\hich\b\loch\b 7}. IF (IN RELEVANT CONTEXT) ANY PROVISION OF CHAPTER IV OF THIS LICENSE IS UNENFORCEABLE, INVALID, OR PROHIBITED UNDER APPLICABLE LAW IN YOUR JURISDICTION, YOU HAVE NO RIGHTS UNDER THIS LICENSE AND YOU MUST NOT USE, COPY, M -ODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) THEREOF.\line \line {\ltrch\hich\b\loch\b 8}. Except as otherwise provided in this License, if any provision of this License, or a portion thereof, is found to be invalid or unenforceable under applicab -le law, it shall not affect the validity or enforceability of the remainder of this License, and such invalid or unenforceable provision shall be construed to reflect the original intent of the provision and shall be enforced to the maximum extent permitte -d by applicable law so as to effect the original intent of the provision as closely as possible.\line \line ____________________________________________________________\line \line \line {\ltrch\hich\b\loch\b Third-Party Licenses}\line \line This Product contains components that were created by third parties and t -hat are governed by third-party licenses, which are contained hereinafter (separated by lines consisting of underscores). Each of the third-party licenses applies only to (portions of) the source code file(s) in which the third-party license is contained o -r in which it is explicitly referenced, and to compiled or otherwise processed forms of such source code. {\ltrch\hich\b\loch\b None of the third-party licenses applies to This Product as a whole, even when it uses terms such as "product", "program", or any other equivalent ter -ms/phrases. This Product as a whole is governed by the TrueCrypt License (see above).} Some of the third-party components have been modified by the authors of This Product. Unless otherwise stated, such modifications and additions are governed by the TrueCr -ypt License (see above). Note: Unless otherwise stated, graphics and files that are not part of the source code are governed by the TrueCrypt License.\line \line ____________________________________________________________\line \line \line License agreement for Encryption for the -Masses.\line \line Copyright (C) 1998-2000 Paul Le Roux. All Rights Reserved.\line \line This product can be copied and distributed free of charge, including source code.\line \line You may modify this product and source code, and distribute such modifications, and you may derive new w -orks based on this product, provided that:\line \line 1. Any product which is simply derived from this product cannot be called E4M, or Encryption for the Masses.\line \line 2. If you use any of the source code in your product, and your product is distributed with source code -, you must include this notice with those portions of this source code that you use.\line \line Or,\line \line If your product is distributed in binary form only, you must display on any packaging, and marketing materials which reference your product, a notice which states:\line \line -"This product uses components written by Paul Le Roux "\line \line 3. If you use any of the source code originally by Eric Young, you must in addition follow his terms and conditions.\line \line 4. Nothing requires that you accept this License, as - you have not signed it. However, nothing else grants you permission to modify or distribute the product or its derivative works.\line \line These actions are prohibited by law if you do not accept this License.\line \line 5. If any of these license terms is found to be to br -oad in scope, and declared invalid by any court or legal process, you agree that all other terms shall not be so affected, and shall remain valid and enforceable.\line \line 6. THIS PROGRAM IS DISTRIBUTED FREE OF CHARGE, THEREFORE THERE IS NO WARRANTY FOR THE PROGRA -M, TO THE EXTENT PERMITTED BY APPLICABLE LAW. UNLESS OTHERWISE STATED THE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PART -ICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\line \line 7. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGR -EED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR I -NABILITY TO USE THE PROGRAM, INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS, EVEN IF SUCH HOLDER OR OTHER PARTY HAD PREV -IOUSLY BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\line ____________________________________________________________\line \line Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.\line \line LICENSE TERMS\line \line The free distribution and use of this software - is allowed (with or without changes) provided that:} +\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033{\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0{\ltrch\hich\b\loch\b 2}}{\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 . You are not obligated to comply with Subsection III.1.d if Your Product is not distributed (i.e., Your Product is available only to You).\line \line \line \line {\ltrch\hich\b\loch\b IV. Disclaimer of Liability, Disclaimer of Warranty, Indemnification}\line \line You expressly acknowledge and agree to the + following:\line \line {\ltrch\hich\b\loch\b 1. IN NO EVENT WILL ANY (CO)AUTHOR OF THIS PRODUCT, OR ANY APPLICABLE INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY WHO MAY COPY AND/OR (RE)DISTRIBUTE THIS PRODUCT OR PORTIONS THEREOF, AS MAY BE PERMITTED HEREIN, BE LIABLE TO YOU OR TO ANY O +THER PARTY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY DIRECT, INDIRECT, GENERAL, SPECIAL, INCIDENTAL, PUNITIVE, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, CORRUPTION OR LOSS OF DATA, ANY LOSSES SUSTAINED BY YOU OR THIRD PA +RTIES, A FAILURE OF THIS PRODUCT TO OPERATE WITH ANY OTHER PRODUCT, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR BUSINESS INTERRUPTION), WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE) OR OTHERWISE, ARISING OUT OF + THE USE, COPYING, MODIFICATION, OR (RE)DISTRIBUTION OF THIS PRODUCT (OR A PORTION THEREOF) OR OF YOUR PRODUCT (OR A PORTION THEREOF), OR INABILITY TO USE THIS PRODUCT (OR A PORTION THEREOF), EVEN IF SUCH DAMAGES (OR THE POSSIBILITY OF SUCH DAMAGES) ARE/WE +RE PREDICTABLE OR KNOWN TO ANY (CO)AUTHOR, INTELLECTUAL-PROPERTY OWNER, OR ANY OTHER PARTY.}\line \line {\ltrch\hich\b\loch\b 2. THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF MERCHANT +ABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THIS PRODUCT IS WITH YOU. SHOULD THIS PRODUCT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.}\line \line {\ltrch\hich\b\loch\b 3}. +THIS PRODUCT MAY INCORPORATE IMPLEMENTATIONS OF CRYPTOGRAPHIC ALGORITHMS THAT ARE REGULATED (E.G., SUBJECT TO EXPORT/IMPORT CONTROL REGULATIONS) OR ILLEGAL IN SOME COUNTRIES. IT IS SOLELY YOUR RESPONSIBILITY TO VERIFY THAT IT IS LEGAL TO IMPORT AND/OR (RE) +EXPORT AND/OR USE THIS PRODUCT (OR PORTIONS THEREOF) IN COUNTRIES WHERE YOU INTEND TO USE IT AND/OR TO WHICH YOU INTEND TO IMPORT IT AND/OR FROM WHICH YOU INTEND TO EXPORT IT, AND IT IS SOLELY YOUR RESPONSIBILITY TO COMPLY WITH ANY APPLICABLE REGULATIONS, +RESTRICTIONS, AND LAWS.\line \line {\ltrch\hich\b\loch\b 4}. YOU SHALL INDEMNIFY, DEFEND AND HOLD ALL (CO)AUTHORS OF THIS PRODUCT, AND APPLICABLE INTELLECTUAL-PROPERTY OWNERS, HARMLESS FROM AND AGAINST ANY AND ALL LIABILITY, DAMAGES, LOSSES, SETTLEMENTS, PENALTIES, FINES, COSTS, EXPENSES +(INCLUDING REASONABLE ATTORNEYS' FEES), DEMANDS, CAUSES OF ACTION, CLAIMS, ACTIONS, PROCEEDINGS, AND SUITS, DIRECTLY RELATED TO OR ARISING OUT OF YOUR USE, INABILITY TO USE, COPYING, (RE)DISTRIBUTION, IMPORT AND/OR (RE)EXPORT OF THIS PRODUCT (OR PORTIONS T +HEREOF) AND/OR YOUR BREACH OF ANY TERM OF THIS LICENSE.\line \line \line \line {\ltrch\hich\b\loch\b V. Trademarks}\line \line This License does not grant permission to use trademarks associated with (or applying to) This Product, except for fair use as defined by applicable law and except for use expressly +permitted or required by this License. Any attempt otherwise to use trademarks associated with (or applying to) This Product automatically and immediately terminates Your rights under This License and may constitute trademark infringement (which may be pro +secuted).\line \line \line \line {\ltrch\hich\b\loch\b VI. General Terms and Conditions, Miscellaneous Provisions}\line \line {\ltrch\hich\b\loch\b 1}. ANYONE WHO USES +AND/OR COPIES AND/OR MODIFIES AND/OR CREATES DERIVATIVE WORKS OF AND/OR (RE)DISTRIBUTES THIS PRODUCT, OR ANY PORTION(S) THEREOF, IS, BY SUCH ACTION(S), AGREEING TO BE BOUND BY AND ACCEPTING ALL TERMS AND CONDITIONS OF THIS LICENSE (AND THE RESPONSIBILITIES + AND OBLIGATIONS CONTAINED IN THIS LICENSE). IF YOU DO NOT ACCEPT (AND AGREE TO BE BOUND BY) ALL TERMS AND CONDITIONS OF THIS LICENSE, DO NOT USE, COPY, MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) THEREOF.\line \line {\ltrch\hich\b\loch\b 2}. YO +U MAY NOT USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) THEREOF, EXCEPT AS EXPRESSLY PROVIDED IN THIS LICENSE (EVEN IF APPLICABLE LAW GIVES YOU MORE RIGHTS). ANY ATTEMPT (EVEN IF PERMITTED BY APPLI +CABLE LAW) OTHERWISE TO USE, MODIFY, COPY, CREATE DERIVATIVE WORKS OF, (RE)DISTRIBUTE, OR SUBLICENSE THIS PRODUCT, OR PORTION(S) THEREOF, AUTOMATICALLY AND IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN CONSTITUTE COPYRIGHT INFRINGEMENT (WHI +CH MAY BE PROSECUTED). ANY CONDITIONS AND RESTRICTIONS CONTAINED IN THIS LICENSE ARE ALSO LIMITATIONS ON THE SCOPE OF THIS LICENSE AND ALSO DEFINE THE SCOPE OF YOUR RIGHTS UNDER THIS LICENSE. YOUR FAILURE TO COMPLY WITH THE TERMS AND CONDITIONS OF THIS LIC +ENSE OR FAILURE TO PERFORM ANY APPLICABLE OBLIGATION IMPOSED BY THIS LICENSE AUTOMATICALLY AND IMMEDIATELY TERMINATES YOUR RIGHTS UNDER THIS LICENSE AND CAN CAUSE OR BE CONSIDERED COPYRIGHT INFRINGEMENT (WHICH MAY BE PROSECUTED). NOTHING IN THIS LICENSE SH +ALL IMPLY OR BE CONSTRUED AS A PROMISE, OBLIGATION, OR COVENANT NOT TO SUE FOR COPYRIGHT OR TRADEMARK INFRINGEMENT IF YOU DO NOT COMPLY WITH THE TERMS AND CONDITIONS OF THIS LICENSE.\line \line {\ltrch\hich\b\loch\b 3}. This License does not constitute or imply a waiver of any intellectua +l property rights except as may be otherwise expressly provided in this License. This License does not transfer, assign, or convey any intellectual property rights (e.g., it does not transfer ownership of copyrights or trademarks).\line \line {\ltrch\hich\b\loch\b 4}. Subject to the terms + and conditions of this License, You may allow a third party to use Your copy of This Product (or a copy that You make and distribute, or Your Product) provided that the third party explicitly accepts and agrees to be bound by all terms and conditions of t +his License and the third party is not prohibited from using This Product (or portions thereof) by this License (see, e.g., Section VI.7) or by applicable law. However, You are not obligated to ensure that the third party accepts (and agrees to be bound by + all terms of) this License if You distribute only the self-extracting package (containing This Product) that does not allow the user to install (nor extract) the files contained in the package until he or she accepts and agrees to be bound by all terms an +d conditions of this License.\line \line {\ltrch\hich\b\loch\b 5}. Without specific prior written permission from the authors of This Product (or from their common representative), You must not use the name of This Product, the names of the authors of This Product, or the names of the leg +al entities (or informal groups) of which the authors were/are members/employees, to endorse or promote Your Product or any work in which You include a modified or unmodified version of This Product, or to endorse or promote You or Your affiliates, or in a + way that might suggest that Your Product (or any work in which You include a modified or unmodified version of This Product), You, or Your affiliates is/are endorsed by one or more authors of This Product, or in a way that might suggest that one or more a +uthors of This Product is/are affiliated with You (or Your affiliates) or directly participated in the creation of Your Product or of any work in which You include a modified or unmodified version of This Product.\line \line {\ltrch\hich\b\loch\b 6}. {\ltrch\hich\b\loch\b IF YOU ARE NOT SURE WHETHER YOU UNDERS +TAND ALL PARTS OF THIS LICENSE OR IF YOU ARE NOT SURE WHETHER YOU CAN COMPLY WITH ALL TERMS AND CONDITIONS OF THIS LICENSE, YOU MUST NOT USE, COPY, MODIFY, CREATE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) OF IT. YOU SHOULD CO +NSULT WITH A LAWYER.}\line \line {\ltrch\hich\b\loch\b 7}. IF (IN RELEVANT CONTEXT) ANY PROVISION OF CHAPTER IV OF THIS LICENSE IS UNENFORCEABLE, INVALID, OR PROHIBITED UNDER APPLICABLE LAW IN YOUR JURISDICTION, YOU HAVE NO RIGHTS UNDER THIS LICENSE AND YOU MUST NOT USE, COPY, MODIFY, CREA +TE DERIVATIVE WORKS OF, NOR (RE)DISTRIBUTE THIS PRODUCT, NOR ANY PORTION(S) THEREOF.\line \line {\ltrch\hich\b\loch\b 8}. Except as otherwise provided in this License, if any provision of this License, or a portion thereof, is found to be invalid or unenforceable under applicable law, it +shall not affect the validity or enforceability of the remainder of this License, and such invalid or unenforceable provision shall be construed to reflect the original intent of the provision and shall be enforced to the maximum extent permitted by applic +able law so as to effect the original intent of the provision as closely as possible.\line \line ____________________________________________________________\line \line \line {\ltrch\hich\b\loch\b Third-Party Licenses}\line \line This Product contains components that were created by third parties and that are gov +erned by third-party licenses, which are contained hereinafter (separated by lines consisting of underscores). Each of the third-party licenses applies only to (portions of) the source code file(s) in which the third-party license is contained or in which +it is explicitly referenced, and to compiled or otherwise processed forms of such source code. {\ltrch\hich\b\loch\b None of the third-party licenses applies to This Product as a whole, even when it uses terms such as "product", "program", or any other equivalent terms/phrases. + This Product as a whole is governed by the TrueCrypt License (see above).} Some of the third-party components have been modified by the authors of This Product. Unless otherwise stated, such modifications and additions are governed by the TrueCrypt License + (see above). Note: Unless otherwise stated, graphics and files that are not part of the source code are governed by the TrueCrypt License.\line \line ____________________________________________________________\line \line \line License agreement for Encryption for the Masses.\line \line Co +pyright (C) 1998-2000 Paul Le Roux. All Rights Reserved.\line \line This product can be copied and distributed free of charge, including source code.\line \line You may modify this product and source code, and distribute such modifications, and you may derive new works based +on this product, provided that:\line \line 1. Any product which is simply derived from this product cannot be called E4M, or Encryption for the Masses.\line \line 2. If you use any of the source code in your product, and your product is distributed with source code, you must +include this notice with those portions of this source code that you use.\line \line Or,\line \line If your product is distributed in binary form only, you must display on any packaging, and marketing materials which reference your product, a notice which states:\line \line "This produ +ct uses components written by Paul Le Roux "\line \line 3. If you use any of the source code originally by Eric Young, you must in addition follow his terms and conditions.\line \line 4. Nothing requires that you accept this License, as you have n +ot signed it. However, nothing else grants you permission to modify or distribute the product or its derivative works.\line \line These actions are prohibited by law if you do not accept this License.\line \line 5. If any of these license terms is found to be to broad in scop +e, and declared invalid by any court or legal process, you agree that all other terms shall not be so affected, and shall remain valid and enforceable.\line \line 6. THIS PROGRAM IS DISTRIBUTED FREE OF CHARGE, THEREFORE THERE IS NO WARRANTY FOR THE PROGRAM, TO THE E +XTENT PERMITTED BY APPLICABLE LAW. UNLESS OTHERWISE STATED THE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURP +OSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\line \line 7. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN W +RITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO + USE THE PROGRAM, INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS, EVEN IF SUCH HOLDER OR OTHER PARTY HAD PREVIOUSLY BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\line ____________________________________________________________\line \line Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.\line \line LICENSE TERMS\line \line The free distribution and use of this software is allowed + (with or without changes) provided that:} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\f2\fs16\f2\fs16\f2\fs16 1.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls1\li707\ri0\lin707\rin0\fi-283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 source code distributions include the above copyright notice, this list of conditions and the following disclaimer;} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\f2\fs16\f2\fs16\f2\fs16 2.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls1\li707\ri0\lin707\rin0\fi-283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 binary distributions include the above copyright notice, this list of conditions and the following disclaimer in their documentation;} \par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f2\fs16\f2\fs16\f2\fs16 3.\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls1\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af2\afs16\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs16\lang1033\loch\f2\fs16\lang1033 {\rtlch \ltrch\loch\f2\fs16\lang1033\i0\b0 the name of the copyright holder is not used to endorse products built using this software without specific written permission. }