/* Legal Notice: Some portions of the source code contained in this file were derived from the source code of Encryption for the Masses 2.02a, which is 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 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. */ #pragma once #include "Tcdefs.h" #include "Boot/Windows/BootDefs.h" #include "Common.h" #include "Crypto.h" #include "Volumes.h" #include "Wipe.h" #ifdef _WIN32 /* WARNING: Modifying the following values or their meanings can introduce incompatibility with previous versions. */ #define TC_IOCTL(CODE) (CTL_CODE (FILE_DEVICE_UNKNOWN, 0x800 + (CODE), METHOD_BUFFERED, FILE_ANY_ACCESS)) #define TC_IOCTL_GET_DRIVER_VERSION TC_IOCTL (1) #define TC_IOCTL_GET_BOOT_LOADER_VERSION TC_IOCTL (2) #define TC_IOCTL_MOUNT_VOLUME TC_IOCTL (3) #define TC_IOCTL_DISMOUNT_VOLUME TC_IOCTL (4) #define TC_IOCTL_DISMOUNT_ALL_VOLUMES TC_IOCTL (5) #define TC_IOCTL_GET_MOUNTED_VOLUMES TC_IOCTL (6) #define TC_IOCTL_GET_VOLUME_PROPERTIES TC_IOCTL (7) #define TC_IOCTL_GET_DEVICE_REFCOUNT TC_IOCTL (8) #define TC_IOCTL_IS_DRIVER_UNLOAD_DISABLED TC_IOCTL (9) #define TC_IOCTL_IS_ANY_VOLUME_MOUNTED TC_IOCTL (10) #define TC_IOCTL_GET_PASSWORD_CACHE_STATUS TC_IOCTL (11) #define TC_IOCTL_WIPE_PASSWORD_CACHE TC_IOCTL (12) #define TC_IOCTL_OPEN_TEST TC_IOCTL (13) #define TC_IOCTL_GET_DRIVE_PARTITION_INFO TC_IOCTL (14) #define TC_IOCTL_GET_DRIVE_GEOMETRY TC_IOCTL (15) #define TC_IOCTL_PROBE_REAL_DRIVE_SIZE TC_IOCTL (16) #define TC_IOCTL_GET_RESOLVED_SYMLINK TC_IOCTL (17) #define TC_IOCTL_GET_BOOT_ENCRYPTION_STATUS TC_IOCTL (18) #define TC_IOCTL_BOOT_ENCRYPTION_SETUP TC_IOCTL (19) #define TC_IOCTL_ABORT_BOOT_ENCRYPTION_SETUP TC_IOCTL (20) #define TC_IOCTL_GET_BOOT_ENCRYPTION_SETUP_RESULT TC_IOCTL (21) #define TC_IOCTL_GET_BOOT_DRIVE_VOLUME_PROPERTIES TC_IOCTL (22) #define TC_IOCTL_REOPEN_BOOT_VOLUME_HEADER TC_IOCTL (23) #define TC_IOCTL_GET_BOOT_ENCRYPTION_ALGORITHM_NAME TC_IOCTL (24) #define TC_IOCTL_GET_PORTABLE_MODE_STATUS TC_IOCTL (25) #define TC_IOCTL_SET_PORTABLE_MODE_STATUS TC_IOCTL (26) #define TC_IOCTL_IS_HIDDEN_SYSTEM_RUNNING TC_IOCTL (27) #define TC_IOCTL_GET_SYSTEM_DRIVE_CONFIG TC_IOCTL (28) #define TC_IOCTL_DISK_IS_WRITABLE TC_IOCTL (29) #define TC_IOCTL_START_DECOY_SYSTEM_WIPE TC_IOCTL (30) #define TC_IOCTL_ABORT_DECOY_SYSTEM_WIPE TC_IOCTL (31) #define TC_IOCTL_GET_DECOY_SYSTEM_WIPE_STATUS TC_IOCTL (32) #define TC_IOCTL_GET_DECOY_SYSTEM_WIPE_RESULT TC_IOCTL (33) #define TC_IOCTL_WRITE_BOOT_DRIVE_SECTOR TC_IOCTL (34) #define TC_IOCTL_GET_WARNING_FLAGS TC_IOCTL (35) #define TC_IOCTL_SET_SYSTEM_FAVORITE_VOLUME_DIRTY TC_IOCTL (36) #define TC_IOCTL_REREAD_DRIVER_CONFIG TC_IOCTL (37) #define TC_IOCTL_GET_SYSTEM_DRIVE_DUMP_CONFIG TC_IOCTL (38) // Legacy IOCTLs used before version 5.0 #define TC_IOCTL_LEGACY_GET_DRIVER_VERSION 466968 #define TC_IOCTL_LEGACY_GET_MOUNTED_VOLUMES 466948 /* Start of driver interface structures, the size of these structures may change between versions; so make sure you first send DRIVER_VERSION to check that it's the correct device driver */ #pragma pack (push) #pragma pack(1) typedef struct { int nReturnCode; /* Return code back from driver */ BOOL FilesystemDirty; BOOL VolumeMountedReadOnlyAfterAccessDenied; BOOL VolumeMountedReadOnlyAfterDeviceWriteProtected; wchar_t wszVolume[TC_MAX_PATH]; /* Volume to be mounted */ Password VolumePassword; /* User password */ BOOL bCache; /* Cache passwords in driver */ int nDosDriveNo; /* Drive number to mount */ uint32 BytesPerSector; BOOL bMountReadOnly; /* Mount volume in read-only mode */ BOOL bMountRemovable; /* Mount volume as removable media */ BOOL bExclusiveAccess; /* Open host file/device in exclusive access mode */ BOOL bMountManager; /* Announce volume to mount manager */ BOOL bPreserveTimestamp; /* Preserve file container timestamp */ BOOL bPartitionInInactiveSysEncScope; /* If TRUE, we are to attempt to mount a partition located on an encrypted system drive without pre-boot authentication. */
#
# Copyright (c) 2013-2017 IDRIX
# Governed by the Apache License 2.0 the full text of which is contained
# in the file License.txt included in VeraCrypt binary and source
# code distribution packages.
#

# Absolute path this script is in
SCRIPTPATH=$(cd "$(dirname "$0")"; pwd)
# source directory which contains the Makefile
SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd)
# directory where the VeraCrypt project has been checked out
PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd)

# the sources of wxWidgets 3.0.3 must be extracted to the parent directory
export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
echo "Using wxWidgets sources in $WX_ROOT"

# this will be the temporary wxWidgets directory
export WX_BUILD_DIR=$PARENTDIR/wxBuild

# define the SDK version to use. We use 10.7 by default
export VC_OSX_TARGET=10.7
echo "Using MacOSX SDK $VC_OSX_TARGET"


cd $SOURCEPATH

echo "Building VeraCrypt"
make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package

# Uncomment below and comment line above to reuse existing wxWidgets build
# make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package