2016-05-10 20:20:14 +02:00
|
|
|
This archive contains the source code of VeraCrypt.
|
|
|
|
It is based on original TrueCrypt 7.1a with security enhancements and modifications.
|
|
|
|
|
|
|
|
|
|
|
|
Important
|
|
|
|
=========
|
|
|
|
|
|
|
|
You may use the source code contained in this archive only if you accept and
|
|
|
|
agree to the license terms contained in the file 'License.txt', which is
|
|
|
|
included in this archive.
|
|
|
|
|
|
|
|
Note that the license specifies, for example, that a derived work must not be
|
|
|
|
called 'TrueCrypt' or 'VeraCrypt'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Contents
|
|
|
|
========
|
|
|
|
|
2016-05-10 22:16:32 +02:00
|
|
|
I. Windows
|
2017-06-29 22:09:35 +02:00
|
|
|
Requirements for Building VeraCrypt for Windows.
|
|
|
|
Instructions for Building VeraCrypt for Windows.
|
|
|
|
Instructions for Signing and Packaging VeraCrypt for Windows.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2016-05-10 22:16:32 +02:00
|
|
|
II. Linux and Mac OS X
|
2017-06-29 22:09:35 +02:00
|
|
|
Requirements for Building VeraCrypt for Linux and Mac OS X.
|
|
|
|
Instructions for Building VeraCrypt for Linux and Mac OS X.
|
2016-05-10 20:20:14 +02:00
|
|
|
Mac OS X specifics
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2017-07-10 00:13:07 +02:00
|
|
|
III. FreeBSD
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
IV. Third-Party Developers (Contributors)
|
|
|
|
|
|
|
|
V. Legal Information
|
|
|
|
|
|
|
|
VI. Further Information
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I. Windows
|
|
|
|
==========
|
|
|
|
|
|
|
|
Requirements for Building VeraCrypt for Windows:
|
|
|
|
------------------------------------------------
|
|
|
|
|
2016-06-17 15:43:20 +02:00
|
|
|
- Microsoft Visual C++ 2010 SP1 (Professional Edition or compatible)
|
2021-09-05 16:23:07 +02:00
|
|
|
- Microsoft Visual C++ 2019
|
2016-05-10 20:20:14 +02:00
|
|
|
- Microsoft Visual C++ 1.52 (available from MSDN Subscriber Downloads)
|
2016-06-17 15:43:20 +02:00
|
|
|
- Microsoft Windows SDK for Windows 7.1 (configured for Visual C++ 2010)
|
2016-05-10 20:20:14 +02:00
|
|
|
- Microsoft Windows SDK for Windows 8.1 (needed for SHA-256 code signing)
|
|
|
|
- Microsoft Windows Driver Kit 7.1.0 (build 7600.16385.1)
|
|
|
|
- NASM assembler 2.08 or compatible
|
2017-06-29 19:18:37 +02:00
|
|
|
- YASM 1.3.0 or newer.
|
2016-05-10 20:20:14 +02:00
|
|
|
- gzip compressor
|
2016-10-18 04:37:26 +02:00
|
|
|
- upx packer (available at https://upx.github.io/)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
IMPORTANT:
|
|
|
|
|
|
|
|
The 64-bit editions of Windows Vista and later versions of Windows, and in
|
|
|
|
some cases (e.g. playback of HD DVD content) also the 32-bit editions, do not
|
|
|
|
allow the VeraCrypt driver to run without an appropriate digital signature.
|
|
|
|
Therefore, all .sys files in official VeraCrypt binary packages are digitally
|
2021-09-05 16:23:07 +02:00
|
|
|
signed with the digital certificate of the IDRIX, which was issued by
|
|
|
|
GlobalSign certification authority. At the end of each official .exe and
|
2016-05-10 20:20:14 +02:00
|
|
|
.sys file, there are embedded digital signatures and all related certificates
|
|
|
|
(i.e. all certificates in the relevant certification chain, such as the
|
|
|
|
certification authority certificates, CA-MS cross-certificate, and the
|
2016-05-10 22:16:32 +02:00
|
|
|
IDRIX certificate).
|
2021-09-05 16:23:07 +02:00
|
|
|
Keep this in mind if you compile VeraCrypt and compare your binaries with the
|
|
|
|
official binaries. If your binaries are unsigned, the sizes of the official
|
|
|
|
binaries will usually be approximately 10 KiB greater than sizes of your
|
|
|
|
binaries (there may be further differences if you use a different version of
|
|
|
|
the compiler, or if you install a different or no service pack for Visual
|
|
|
|
Studio, or different hotfixes for it, or if you use different versions of
|
|
|
|
the required SDKs).
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
Instructions for Building VeraCrypt for Windows:
|
|
|
|
------------------------------------------------
|
|
|
|
|
|
|
|
1) Create an environment variable 'MSVC16_ROOT' pointing to the folder 'MSVC15'
|
|
|
|
extracted from the Visual C++ 1.52 self-extracting package.
|
|
|
|
|
|
|
|
Note: The 16-bit installer MSVC15\SETUP.EXE cannot be run on 64-bit Windows,
|
|
|
|
but it is actually not necessary to run it. You only need to extract the
|
|
|
|
folder 'MSVC15', which contains the 32-bit binaries required to build the
|
|
|
|
VeraCrypt Boot Loader.
|
|
|
|
|
|
|
|
2) If you have installed the Windows Driver Development Kit in another
|
|
|
|
directory than '%SYSTEMDRIVE%\WinDDK', create an environment variable
|
|
|
|
'WINDDK_ROOT' pointing to the DDK installation directory.
|
|
|
|
|
2016-09-20 12:52:58 +02:00
|
|
|
3) Open the solution file 'VeraCrypt.sln' in Microsoft Visual Studio 2010.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2021-09-05 16:23:07 +02:00
|
|
|
4) Select 'All' as the active solution configuration and WIN32 as the active
|
|
|
|
platform.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2016-09-20 12:52:58 +02:00
|
|
|
5) Build the solution.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2021-09-05 16:23:07 +02:00
|
|
|
6) Select x64 as the active platform and build the solution again.
|
|
|
|
|
|
|
|
7) Open the solution file 'VeraCrypt_vs2019.sln' in Microsoft Visual Studio 2019.
|
|
|
|
|
|
|
|
8) Select 'All' as the active solution configuration and ARM64 as the active
|
|
|
|
platform.
|
|
|
|
|
|
|
|
9) Build the solution.
|
|
|
|
|
2016-09-20 12:52:58 +02:00
|
|
|
6) If successful, there should be newly built VeraCrypt binaries in the
|
2021-09-05 16:23:07 +02:00
|
|
|
'Release\Setup Files' folder.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
Instructions for Signing and Packaging VeraCrypt for Windows:
|
|
|
|
-------------------------------------------------------------
|
|
|
|
|
|
|
|
First, create an environment variable 'WSDK81' pointing to the Windows SDK
|
|
|
|
for Windows 8.1 installation directory.
|
2016-05-10 22:16:32 +02:00
|
|
|
The folder "Signing" contains a batch file (sign.bat) that will sign all
|
|
|
|
VeraCrypt components using a code signing certificate present on the
|
2021-09-05 16:23:07 +02:00
|
|
|
certificate store and also build the final installation setup and MSI package.
|
|
|
|
The batch file suppose that the code signing certificate is issued by
|
|
|
|
GlobalSign. This is the case for IDRIX's certificate. If yours is issued by
|
|
|
|
another CA, then you should put its intermediate certificates in the "Signing"
|
|
|
|
folder and modify sign.bat accordingly.
|
|
|
|
|
|
|
|
In order to generate MSI packages, WiX Toolset v3.11 must be installed.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2016-08-17 16:51:17 +02:00
|
|
|
VeraCrypt EFI Boot Loader:
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
VeraCrypt source code contains pre-built EFI binaries under src\Boot\EFI.
|
2021-09-04 21:59:25 +02:00
|
|
|
The source code of VeraCrypt EFI Boot Loader is licensed under LGPL and
|
2016-08-17 16:51:17 +02:00
|
|
|
it is available at https://github.com/veracrypt/VeraCrypt-DCS.
|
|
|
|
For build instructions, please refer to the file src\Boot\EFI\Readme.txt.
|
|
|
|
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
II. Linux and Mac OS X
|
|
|
|
======================
|
|
|
|
|
|
|
|
Requirements for Building VeraCrypt for Linux and Mac OS X:
|
|
|
|
-----------------------------------------------------------
|
|
|
|
|
|
|
|
- GNU Make
|
|
|
|
- GNU C++ Compiler 4.0 or compatible
|
|
|
|
- Apple Xcode (Mac OS X only)
|
2017-06-29 19:18:37 +02:00
|
|
|
- YASM 1.3.0 or newer (Linux only, x86/x64 architecture only)
|
2016-05-10 20:20:14 +02:00
|
|
|
- pkg-config
|
|
|
|
- wxWidgets 3.0 shared library and header files installed or
|
2016-10-17 23:43:04 +02:00
|
|
|
wxWidgets 3.0 library source code (available at https://www.wxwidgets.org)
|
2016-05-10 20:20:14 +02:00
|
|
|
- FUSE library and header files (available at https://github.com/libfuse/libfuse
|
|
|
|
and https://osxfuse.github.io/)
|
|
|
|
|
|
|
|
|
|
|
|
Instructions for Building VeraCrypt for Linux and Mac OS X:
|
|
|
|
-----------------------------------------------------------
|
|
|
|
|
|
|
|
1) Change the current directory to the root of the VeraCrypt source code.
|
|
|
|
|
|
|
|
2) If you have no wxWidgets shared library installed, run the following
|
|
|
|
command to configure the wxWidgets static library for VeraCrypt and to
|
2016-05-10 22:16:32 +02:00
|
|
|
build it:
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2020-06-11 17:22:01 +02:00
|
|
|
$ make WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
The variable WX_ROOT must point to the location of the source code of the
|
|
|
|
wxWidgets library. Output files will be placed in the './wxrelease/'
|
|
|
|
directory.
|
|
|
|
|
|
|
|
3) To build VeraCrypt, run the following command:
|
|
|
|
|
2020-06-11 17:22:01 +02:00
|
|
|
$ make
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
or if you have no wxWidgets shared library installed:
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2020-06-11 17:22:01 +02:00
|
|
|
$ make WXSTATIC=1
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
4) If successful, the VeraCrypt executable should be located in the directory
|
|
|
|
'Main'.
|
|
|
|
|
|
|
|
By default, a universal executable supporting both graphical and text user
|
|
|
|
interface (through the switch --text) is built.
|
|
|
|
On Linux, a console-only executable, which requires no GUI library, can be
|
|
|
|
built using the 'NOGUI' parameter:
|
|
|
|
|
2020-06-11 17:22:01 +02:00
|
|
|
$ make NOGUI=1 WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild
|
|
|
|
$ make NOGUI=1 WXSTATIC=1
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2016-05-10 20:20:14 +02:00
|
|
|
On MacOSX, building a console-only executable is not supported.
|
|
|
|
|
|
|
|
Mac OS X specifics:
|
|
|
|
-----------------------------------------------------------
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2021-09-05 16:23:07 +02:00
|
|
|
Under MacOSX, the SDK for OSX 11.3 is used by default. To use another version
|
|
|
|
of the SDK (i.e. 10.15), you can export the environment variable VC_OSX_TARGET:
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2021-09-05 16:23:07 +02:00
|
|
|
$ export VC_OSX_TARGET=10.15
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
Before building under MacOSX, pkg-config must be installed if not yet available.
|
2016-10-17 23:43:04 +02:00
|
|
|
Get it from https://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz and
|
2016-05-10 22:16:32 +02:00
|
|
|
compile using the following commands :
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
$ ./configure --with-internal-glib
|
|
|
|
$ make
|
|
|
|
$ sudo make install
|
|
|
|
|
|
|
|
After making sure pkg-config is available, download and install OSXFuse from
|
2021-09-05 16:23:07 +02:00
|
|
|
https://osxfuse.github.io/
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2016-05-10 22:16:32 +02:00
|
|
|
The script build_veracrypt_macosx.sh available under "src/Build" performs the
|
2016-05-10 20:20:14 +02:00
|
|
|
full build of VeraCrypt including the creation of the installer pkg. It expects
|
2021-09-05 16:23:07 +02:00
|
|
|
to find the wxWidgets 3.1.2 sources at the same level as where you put
|
2016-05-10 20:20:14 +02:00
|
|
|
VeraCrypt sources (i.e. if "src" path is "/Users/joe/Projects/VeraCrypt/src"
|
2021-09-05 16:23:07 +02:00
|
|
|
then wxWidgets should be at "/Users/joe/Projects/wxWidgets-3.1.2")
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
The build process uses Code Signing certificates whose ID is specified in
|
2021-09-04 21:59:25 +02:00
|
|
|
src/Main/Main.make (look for lines containing "Developer ID Application" and
|
2016-12-07 00:27:28 +01:00
|
|
|
"Developer ID Installer"). You'll have to modify these lines to put the ID of
|
|
|
|
your Code Signing certificates or comment them if you don't have one.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
Because of incompatibility issues with OSXFUSE, the SDK 10.9 generates a
|
|
|
|
VeraCrypt binary that has issues communicating with the OSXFUSE kernel extension.
|
2017-06-29 19:03:38 +02:00
|
|
|
Thus, we recommend using a different OSX SDK version for building VeraCrypt.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-10 00:13:07 +02:00
|
|
|
III. FreeBSD
|
2016-05-10 20:20:14 +02:00
|
|
|
============================
|
|
|
|
|
2017-07-10 00:13:07 +02:00
|
|
|
FreeBSD is supported starting from version 11.
|
|
|
|
The build requirements and instructions are the same as Linux except that gmake
|
|
|
|
should be used instead of make.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IV. Third-Party Developers (Contributors)
|
|
|
|
=========================================
|
|
|
|
|
|
|
|
If you intend to implement a feature, please contact us first to make sure:
|
|
|
|
|
|
|
|
1) That the feature has not been implemented (we may have already implemented
|
2016-05-10 22:16:32 +02:00
|
|
|
it, but haven't released the code yet).
|
|
|
|
2) That the feature is acceptable.
|
2016-05-10 20:20:14 +02:00
|
|
|
3) Whether we need help of third-party developers with implementing the feature.
|
|
|
|
|
|
|
|
Information on how to contact us can be found at:
|
2017-05-14 11:42:52 +02:00
|
|
|
https://www.veracrypt.fr/
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V. Legal Information
|
|
|
|
====================
|
|
|
|
|
|
|
|
Copyright Information
|
|
|
|
---------------------
|
|
|
|
|
2018-08-12 22:21:22 +02:00
|
|
|
This software as a whole:
|
2021-08-29 00:23:39 +02:00
|
|
|
Copyright (c) 2013-2021 IDRIX. All rights reserved.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2018-08-12 22:21:22 +02:00
|
|
|
Portions of this software:
|
2021-08-29 00:23:39 +02:00
|
|
|
Copyright (c) 2013-2021 IDRIX. All rights reserved.
|
2018-08-12 22:21:22 +02:00
|
|
|
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) 1995-2017 Jean-loup Gailly and Mark Adler.
|
|
|
|
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
|
2019-02-12 19:01:10 +01:00
|
|
|
Copyright (c) 1999-2017 Dieter Baron and Thomas Klausner.
|
2018-08-12 22:21:22 +02:00
|
|
|
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
|
2019-02-12 19:01:10 +01:00
|
|
|
Copyright (c) 1999-2016 Jack Lloyd. All rights reserved.
|
2020-03-10 00:32:07 +01:00
|
|
|
Copyright (c) 2013-2019 Stephan Mueller <smueller@chronox.de>
|
2016-08-17 16:51:17 +02:00
|
|
|
|
2016-05-10 20:20:14 +02:00
|
|
|
For more information, please see the legal notices attached to parts of the
|
|
|
|
source code.
|
|
|
|
|
|
|
|
Trademark Information
|
|
|
|
---------------------
|
|
|
|
|
2016-05-10 22:16:32 +02:00
|
|
|
Any trademarks contained in the source code, binaries, and/or in the
|
2016-05-10 20:20:14 +02:00
|
|
|
documentation, are the sole property of their respective owners.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VI. Further Information
|
|
|
|
=======================
|
|
|
|
|
2016-10-17 23:43:04 +02:00
|
|
|
https://www.veracrypt.fr
|