2016-05-10 20:20:14 +02:00
|
|
|
This archive contains the source code of VeraCrypt.
|
2024-06-18 00:49:11 +02:00
|
|
|
It is based on the original TrueCrypt 7.1a with security enhancements and modifications.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# Important
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
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'
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# Contents
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2023-05-19 00:46:45 +02:00
|
|
|
[I. Windows](#i-windows)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2023-05-19 00:46:45 +02:00
|
|
|
[II. Linux and Mac OS X](#ii-linux-and-mac-os-x)
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
[III. FreeBSD](#iii-freebsd)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
[IV. Third-Party Developers (Contributors)](#iv-third-party-developers-contributors)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
[V. Legal Information](#v-legal-information)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
[VI. Further Information](#vi-further-information)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# I. Windows
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Requirements for Building VeraCrypt for Windows:
|
2022-12-11 18:40:33 +01:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
A detailed guide on how to build VeraCrypt on Windows can be found in
|
|
|
|
the [documentation](./doc/html/CompilingGuidelineWin.html) in the repository and
|
|
|
|
it is also available [online](https://www.veracrypt.fr/en/CompilingGuidelineWin.html).
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
IMPORTANT:
|
|
|
|
|
|
|
|
The 64-bit editions of Windows Vista and later versions of Windows, and in
|
2024-06-18 00:49:11 +02:00
|
|
|
some cases (e.g. playback of HD DVD content) also the 32-bit editions do not
|
2016-05-10 20:20:14 +02:00
|
|
|
allow the VeraCrypt driver to run without an appropriate digital signature.
|
|
|
|
Therefore, all .sys files in official VeraCrypt binary packages are digitally
|
2024-06-18 00:49:11 +02:00
|
|
|
signed with the digital certificate of the IDRIX, which was issued by
|
2021-09-05 16:23:07 +02:00
|
|
|
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).
|
2024-06-18 00:49:11 +02:00
|
|
|
|
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
|
2024-06-18 00:49:11 +02:00
|
|
|
binaries will usually be approximately 10 KiB greater than the sizes of your
|
2021-09-05 16:23:07 +02:00
|
|
|
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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Instructions for Signing and Packaging VeraCrypt for Windows:
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
First, create an environment variable 'WSDK81' pointing to the Windows SDK
|
|
|
|
for Windows 8.1 installation directory.
|
2024-06-18 00:49:11 +02:00
|
|
|
|
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
|
2024-06-18 00:49:11 +02:00
|
|
|
certificate store and build the final installation setup and MSI package.
|
|
|
|
The batch file assumes that the code signing certificate is issued by
|
2021-09-05 16:23:07 +02:00
|
|
|
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.
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
To generate MSI packages, WiX Toolset v3.11 must be installed.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## VeraCrypt EFI Boot Loader:
|
2016-08-17 16:51:17 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# II. Linux and Mac OS X
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
A detailed guide on how to build VeraCrypt on Linux can be found in
|
|
|
|
the [documentation](./doc/html/CompilingGuidelineLinux.html) in the repository and
|
|
|
|
it is also available [online](https://www.veracrypt.fr/en/CompilingGuidelineLinux.html).
|
2022-08-16 08:21:55 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Requirements for Building VeraCrypt for Linux and Mac OS X:
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
- GNU Make
|
|
|
|
- GNU C++ Compiler 4.0 or compatible
|
2024-07-01 22:35:31 +02:00
|
|
|
- Apple Xcode or Xcode command line tools (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/)
|
2023-06-29 20:53:25 +02:00
|
|
|
- PCSC-lite library and header files (available at https://github.com/LudovicRousseau/PCSC)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Instructions for Building VeraCrypt for Linux and Mac OS X:
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
1. Change the current directory to the root of the VeraCrypt source code.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
2. If you have no wxWidgets shared library installed, run the following
|
2016-05-10 20:20:14 +02:00
|
|
|
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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ make WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild`
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
The variable `WX_ROOT` must point to the location of the source code of the
|
2016-05-10 20:20:14 +02:00
|
|
|
wxWidgets library. Output files will be placed in the './wxrelease/'
|
|
|
|
directory.
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
3. To build VeraCrypt, run the following command:
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ make WXSTATIC=1`
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
4. If successful, the VeraCrypt executable should be located in the directory
|
2016-05-10 20:20:14 +02:00
|
|
|
'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:
|
|
|
|
|
2024-06-18 00:49:11 +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.
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Mac OS X specifics:
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
Under MacOSX, the latest installed SDK is used by default. To use a different version
|
2024-06-16 21:32:05 +02:00
|
|
|
of the SDK when building using make, you can export the environment variable VC_OSX_SDK:
|
2016-05-10 22:16:32 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ export VC_OSX_SDK=13.0`
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-16 10:39:18 +02:00
|
|
|
For development dependencies management, you can use [homebrew](https://brew.sh).
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ brew install pkg-config yasm wxwidgets`
|
2024-06-16 10:39:18 +02:00
|
|
|
|
|
|
|
You also need system dependencies
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ brew install --cask macfuse packages`
|
2024-06-16 10:39:18 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
After installing dependencies via brew, you can build a local development build
|
2024-06-16 10:39:18 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ ./src/Build/build_veracrypt_macosx.sh -b`
|
2024-06-16 10:39:18 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
If you want to build the package, you must pass `-p` to the build script above. The built
|
2024-06-16 10:39:18 +02:00
|
|
|
executable will be in `.src/Main`
|
|
|
|
|
|
|
|
If you prefer to build from sources, or without homebrew, pkg-config and packages must be installed.
|
|
|
|
|
2024-06-16 21:32:05 +02:00
|
|
|
Get pkg-config from https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz and
|
2024-06-18 00:49:11 +02:00
|
|
|
compile using the following commands:
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
`$ CFLAGS="-Wno-int-conversion" CXXFLAGS="-Wno-int-conversion" ./configure --with-internal-glib`
|
|
|
|
|
|
|
|
`$ make`
|
|
|
|
|
|
|
|
`$ sudo make install`
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
The [build_veracrypt_macosx.sh](./src/Build/build_veracrypt_macosx.sh) script performs the
|
2016-05-10 20:20:14 +02:00
|
|
|
full build of VeraCrypt including the creation of the installer pkg. It expects
|
2024-06-16 21:32:05 +02:00
|
|
|
to find the wxWidgets 3.2.5 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"
|
2024-06-16 21:32:05 +02:00
|
|
|
then wxWidgets should be at "/Users/joe/Projects/wxWidgets-3.2.5")
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-16 21:32:05 +02:00
|
|
|
The make 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
|
2024-06-18 00:49:11 +02:00
|
|
|
your Code Signing certificates or comment them out 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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
The Packages installer that is used for the VeraCrypt official build has been notarized by IDRIX and it is available at
|
2024-06-16 21:32:05 +02:00
|
|
|
https://github.com/idrassi/packages/releases
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# IV. Third-Party Developers (Contributors)
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
If you intend to implement a feature, please contact us first to make sure:
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
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).
|
2024-06-18 00:49:11 +02:00
|
|
|
2. That the feature is acceptable.
|
|
|
|
3. Whether we need the help of third-party developers with implementing the feature.
|
2016-05-10 20:20:14 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# V. Legal Information
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Copyright Information
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2024-06-29 22:57:00 +02:00
|
|
|
This software as a whole:
|
|
|
|
Copyright (c) 2013-2024 IDRIX. All rights reserved.
|
|
|
|
|
|
|
|
Portions of this software:
|
|
|
|
Copyright (c) 2013-2024 IDRIX. 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) 1995-2023 Jean-loup Gailly and Mark Adler.
|
|
|
|
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
|
|
|
|
Copyright (c) 1999-2023 Dieter Baron and Thomas Klausner.
|
|
|
|
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
|
|
|
|
Copyright (c) 1999-2016 Jack Lloyd. All rights reserved.
|
|
|
|
Copyright (c) 2013-2019 Stephan Mueller <smueller@chronox.de>
|
|
|
|
Copyright (c) 1999-2023 Igor Pavlov
|
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.
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
## Trademark Information
|
2016-05-10 20:20:14 +02:00
|
|
|
|
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.
|
|
|
|
|
2024-06-18 00:49:11 +02:00
|
|
|
# VI. Further Information
|
2016-05-10 20:20:14 +02:00
|
|
|
|
2016-10-17 23:43:04 +02:00
|
|
|
https://www.veracrypt.fr
|