1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-12 03:18:26 -06:00
Commit Graph

53 Commits

Author SHA1 Message Date
Unit 193
d49c75370a Allow cross compilation. (#1182) 2023-08-21 11:24:25 +02:00
Mounir IDRASSI
034b64f415 EMV keyfile support: Overall code improvements and bug fixes 2023-06-29 00:06:20 +02:00
mmauv
502ab9112a Add EMV functionality (#1080)
* Add basic strcture needed for EMV implementation

* Add demo EMV functionality with C code pasted in a very dirty and unsafe way. NOT FINAL

* Refactor IccExtractor Structure

* Fix Makefile

* fix include file

* move global variables from h to c

* revert to memcpy

* fix icc data recovery functions

* Add EMV functionalities on windows

* Make EMVToken structures like SecurityToken

* Define constants instead of hard coded values

* Token structures created with inheritance

* refactor TokenKeyfile to use inherit. + polymor.

* add Token.h + Token.cpp in modules in VS2010

* Add a comment at each use of SecurityToken class or objects

* SecurityTokenKeyfilesDialog preparation

* Implemennt GetAvailableTokens in Token class on windows

* merge

* up (patching for Windows)

* foreach Token.cpp corrected

* Display EMV keyfiles on first window in graphic interface

* Add token to Windows UI

* EMVToken selection on OKButton on Linux

* Keyfile.cpp optimization

* Move getKeyfileData in the token class

* EMV::Token GetAvailableKeyfiles() base

* Move getKeyfileData in the token class on unix

* Remove test comments

* Warnings resolved

* RemoveeSecurityTokenLibraryNotInitialized exception if at least one emv token is detected

* Adding new files

* Remove old files and add the new version to the windows project

* Change make_shared to shared_ptr constructor

* IccExtractor integration working on linux

* Throwing card not EMV execption

* catch error when not EMV type in EMVToken::GetAvailableKeyfiles

* Change types to compile on windows

* list all keyfiles, security keyfiles and emv keyfiles in command line

* Change type to be coherent and remove old todo comments

* Remove todo comments

* Change indentation and resolve a bug from previous commit

* Use polymorphism for GetKeyfileData and add export option for EMVTokens on Linux

* Linux : Allow to export EMV Tokens in command lines, Windows : Disable the delete button when EMV Keyfiles are selected

* Remove SlotId from TokenInfo as it is already in Token

* Correct errors on Linux

* Disable delete option if one EMV Token is selected on Linux

* Fix bug enabling delete button if nothing is selected

* emv data used as reference then burnt

* use of normal files in linux corrected

* help updated

* help updated for export functionnality

* option EMV added to graphic interface but not yet working

* Bug fix : Allow to use multiple EMV on windows

* EMV Option added to UserPreferences

* EMV Option working for Linux

* EMV option added to Windows (not working yet)

* [NOT TESTED] EMV option for Windows

* Working EMV option on Windows

* EMV Option for data extraction working for volume creation

* EMV Option for data extraction working for Mount

* EMV Option for data extraction working for mounting favorites volumes

* EMV Option for extraction working for Changing volume password, Set Derivation Key Algorithm and Add or remove keyfile from volume

* Windows : re-checking EMV Option when getting data

* Removing error catches in the IccDataExtractor classe (It only throws error now). Changing GetPan signature to resemble the other functions signatures more

* Changing EMV errors

- Only throwing ICCExtractionException from outside of the ICC module.
- Catching all TLVExceptions and PCSCExceptions to throw the right ICCExtractionException

- Deleting APDU exceptions.

* First version of the documentation

* Adding function pointers for winscard library (but it crashes VeraCrypt)

* Debugging function pointers

* The import of the library on windows work as expected now

* Reverting EMVToken.cpp changes used to test to library import

* Searching for the System32 path instead of hard codding it

* Fixing the bug were VeraCrypt crashes if there is no readers when  "add Token files" is clicked

* Winscard library not initialized in object constructor anymore to delay it after EMVOption check

* Remove winscard lib from windows dependencies

* Properly displaying errors

* Adding a dot in Language.xml

* Catching TLVException

* Removing unused code

* Remove unusefull comments

* Trying to fix 0x1f error

* Update IccDataExtractor.cpp

* Delete History.xml

* Fix get data without get pan

* Cleanup code

* changes for linux compilation but linking not working

* error handling for linux

* erasing emv data

* Burn PAN

* Burn PAN from memory

* Uncomment selfcheck before merging master

* burn corrected

* EMV errors handling for Linux

* EMV working for Linux CLI

* Doc : Winscard Linux package and VeraCrypt versions

---------

Co-authored-by: doriandu45 <d45.poubelle@gmail.com>
Co-authored-by: red4game <redemgaiming@gmail.com>
Co-authored-by: Brice.Namy <brice.namy@insa-rennes.fr>
Co-authored-by: vocthor <pieceo108@gmail.com>
Co-authored-by: vocthor <67202139+vocthor@users.noreply.github.com>
Co-authored-by: Andrei COCAN <andrei.cocan@insa-rennes.fr>
Co-authored-by: AndreiCocan <95496161+AndreiCocan@users.noreply.github.com>
Co-authored-by: francoisLEROUX <francois3443@gmail.com>
2023-06-28 22:51:43 +02:00
Mounir IDRASSI
2639e39976 Linux: fix static build against wxWidgets 3.2.2.1
libcurl support must be explicitely disabled
GKT2 must be explicitely set as defaut in VeraCrypt Makefile since
wxWidgets 3.2.2.1 uses GKT3 as default
2023-06-13 23:16:39 +02:00
Jertzukka
444152b286 Fix WXSTATIC building on latest wxWidgets stable 3.2.2.1 (#1103)
Changes to be able to build latest wxWidgets stable 3.2.2.1.

Removed in 3.1.5, needs to be removed.
--disable-webkit

Added in 3.1.0, needs to be added.
--disable-addremovectrl
2023-06-13 23:11:23 +02:00
Mounir IDRASSI
36795a688f Implement support of Blake2s-256 hash algorithm and remove deprecated algorithms RIPEMD-160 and GOST89. 2022-03-08 00:29:26 +01:00
Mounir IDRASSI
d417b2806c Linux/FreeBSD: Enable building without AESNI support by setting environment variable DISABLE_AESNI to 1 during build or passing NOAESNI=1 to make command
This comes following Github issue #892 and which should be solved thanks to this.
2022-02-13 18:42:27 +01:00
a1346054
32052f214b Minor cleanup of the repo (#822)
* *: source files should not be executable

* *: make sure files have final newline

* *: remove BOM from text files

* translations: unify headers

* *: fix typos

* *: trim excess whitespace
2021-09-04 21:59:25 +02:00
Unit 193
849cd010e8 Add compile-time toggleable support for application indicators, off by default. (#815)
This tries to figure out, via wx-config, if you're using GTK2 or GTK3
and uses the associated Ayatana library.
2021-08-16 00:54:21 +02:00
Mounir IDRASSI
8ae5a715d6 MacOSX: First native Apple M1 support 2021-08-15 01:07:17 +02:00
Alex
22b0454b81 Added compatibility with GNU GCC 11 Toolchain (#811)
This fixes compilation issues when using GNU GCC >=11 where parameter -std=gnu++17 is used by default. Resolves #802
2021-08-07 21:42:51 +02:00
kokokodak
c8830a04b4 Add support for OpenBSD (#779)
* OpenBSD: add basic support

	modified:   Build/Include/Makefile.inc
	modified:   Driver/Fuse/FuseService.cpp
	modified:   Main/FatalErrorHandler.cpp
	modified:   Makefile
	modified:   Platform/Unix/File.cpp
	modified:   Platform/Unix/FilesystemPath.cpp
	modified:   Platform/Unix/SystemInfo.cpp

* OpenBSD: some necessary files were missing

	new file:   Core/Unix/OpenBSD/CoreOpenBSD.cpp
	new file:   Core/Unix/OpenBSD/CoreOpenBSD.h
	new file:   Core/Unix/OpenBSD/System.h
2021-07-14 13:43:34 +02:00
thewh1teagle
13a1b3482c Hebrew translation (#725)
* Added Translations/Language.he.xml

* translate

* changes

* changes

* changes

* changes

* changes

* changes

* changes

* fixed RTL points

* changes

* Removed hebrew string vowels

* changes

* Changed Makefile path

* changes

* changes

* fixed strings with variables
2021-02-21 10:18:43 +01:00
Gokturk Yuksek
5878486f56 src/Makefile: replace explicit calls to gcc with $(CC) (#706)
The Makefile should respect the value of CC even when performing
build-related tests.

Bug: https://bugs.gentoo.org/756787
2020-12-11 02:08:42 +01:00
Mounir IDRASSI
42890b7b11 MacOSX: Enable c++11 in compiler for non-legacy build. 2020-08-08 20:29:34 +02:00
Gokturk Yuksek
de52f51f5b Fix the compilation against WxWidgets when NOGUI=1 (#570)
* Revert "Linux: Fix failure to run VeraCrypt binary built for console mode on headless machines (fix issue https://github.com/veracrypt/VeraCrypt/issues/531)"

The build failure still exists for system wxGTK compiled with '--disable-gui':

```
In file included from TextUserInterface.cpp:27:
TextUserInterface.h: In member function ‘virtual bool VeraCrypt::TextUserInterface::Initialize(int&, wxChar**)’:
TextUserInterface.h:50:63: error: ‘wxAppBase’ has not been declared
   50 |   virtual bool Initialize (int &argc, wxChar **argv) { return wxAppBase::Initialize(argc, argv); }
```

This reverts commit 737e1f126b.

* Revert "Linux: fix compilation error when building console-only version of VeraCrypt that is statically linked to wxWidgets"

The build failure still exists for system wxGTK compiled with '--disable-gui':

```
In file included from TextUserInterface.cpp:27:
TextUserInterface.h: In member function ‘virtual bool VeraCrypt::TextUserInterface::Initialize(int&, wxChar**)’:
TextUserInterface.h:50:63: error: ‘wxAppBase’ has not been declared
   50 |   virtual bool Initialize (int &argc, wxChar **argv) { return wxAppBase::Initialize(argc, argv); }
```

This reverts commit 14bee5e6a2.

* src/Main/Main.make: simplify the WX_CONFIG_LIBS logic

Irrespective of whether we are linking against widgets statically or
dynamically, pull in only 'base' when GUI is disabled, and
'adv,core,base' when GUI is enabled. When GUI is disabled, the C/CXX
flag must include '-DwxUSE_GUI=0' for this to work.

* src/Makefile: pass '-DwxUSE_GUI=0' when NOGUI=1

veracrypt with NOGUI=1 fails to properly link against wxGTK compiled
with '--disable-gui' only using the 'base' library because the wx's
setup.h implicitly defines wxUSE_GUI=1, which then changes the
definition of various structures, requiring symbols from the core
library as well.

For example, wxwidgets include/wx/app.h defines:

  #if wxUSE_GUI

  class WXDLLIMPEXP_CORE wxAppBase : public wxAppConsole
  ...
  [snip]
  ...
  #else // !GUI

  // wxApp is defined in core and we cannot define another one in wxBase,
  // so use the preprocessor to allow using wxApp in console programs too
  #define wxApp wxAppConsole

  #endif // GUI/!GUI

To fix this, pass '-DwxUSE_GUI=0' when compiling veracrypt with
NOGUI=1.

Closes: https://github.com/veracrypt/VeraCrypt/issues/531
2019-12-20 13:39:43 +01:00
Mounir IDRASSI
14bee5e6a2 Linux: fix compilation error when building console-only version of VeraCrypt that is statically linked to wxWidgets 2019-12-11 23:53:47 +01:00
alt3r 3go
0364a36f84 Linux: fix NOASM compilation (#563) (#568)
Signed-off-by: alt3r 3go <alt3r.3go@protonmail.com>
2019-12-09 17:43:33 +01:00
El Mostafa Idrassi
67a514da6f MacOSX: Enhanced Makefile and build script (#519)
Added new variable 'VC_OSX_SDK' to differentiate between the OSX minimum target and the SDK to use for building.
2019-10-15 00:03:36 +02:00
Mounir IDRASSI
b6dcea013e MacOSX: Add build scripts and modifications to linking against wxWidgets 3.1.2 for non legacy build targeting OSX 10.9+ 2019-10-14 15:05:24 +02:00
Mounir IDRASSI
4fe4cbc568 Linux: Add option in Makefile to use GTK3 in VeraCrypt static build 2019-10-05 19:07:03 +02:00
Unit 193
10c4a3e807 Allow $(ARCH) to be defined during build (#471)
This can be useful when crossbuilding or building in a chroot where using
uname -m would cause the wrong compiler options.
2019-10-02 21:31:07 +02:00
Mounir IDRASSI
5455c89a50 Linux/FreeBSD: Add 32-bit build configuration targetting legacy CPUs that don't support SSE2 instructions. 2018-09-01 01:15:33 +02:00
bmintz
5800d245e5 Fix compilation on Linux (closes #198)
This patch was provided by Krytarik Raido via unit93
https://github.com/veracrypt/VeraCrypt/issues/198#issuecomment-341453420
2017-11-06 21:05:21 -06:00
kavsrf
f45dba14be RPI, armv7 target 2017-07-16 15:14:52 +02:00
Mounir IDRASSI
342b8636d8 Add support for building under FreeBSD 11 2017-07-10 00:14:18 +02:00
Mounir IDRASSI
3d8260d3d3 MacOSX: various changes for assembly files build. Don't use 32-bit assembly code of SHA-512 since it is not compatible with PIE configuration of OSX compiler (absolute addressing used) 2017-06-27 00:55:22 +02:00
Mounir IDRASSI
0ebc26e125 Update IDRIX copyright year 2017-06-23 22:15:59 +02:00
Mounir IDRASSI
52ec6faec3 Linux/MacOSX: use yasm instead of nasm for compiling all assembly files. 2017-06-23 19:05:47 +02:00
Mounir IDRASSI
5d0321291f Linux/MacOSX: Modify Makefile to separate between build and packaging. Add install target for local installation. 2017-06-13 18:21:13 +02:00
Mounir IDRASSI
eb4f5ac4e7 Linux: built VeraCrypt binary with support for Address Space Layout Randomization (ASLR). 2017-06-13 13:46:53 +02:00
Mounir IDRASSI
371b9c904a FreeBSD 11 build and use compatibility 2017-04-23 14:18:48 +02:00
Mounir IDRASSI
3d978c31a7 MacOSX: use Yasm to build Twofish 64-bit assembly code on OSX since native compiler doesn't support GAS syntax 2016-12-26 00:00:03 +01:00
Mounir IDRASSI
181857089b Linux: Always use "uname -m" to determine processor type. This fixes Slackware build issue. 2016-11-05 23:45:21 +01:00
Mounir IDRASSI
0f7ef7dcd7 Linux/MacOSX: cleaner support for SSE compiler switches 2016-10-17 18:40:31 +02:00
Mounir IDRASSI
a63ae58596 Linux: don't use SSE/AES switched of gcc if the architecture is not x86 or x64 (for example ARM). 2016-08-19 01:11:51 +02:00
Mounir IDRASSI
7695b8ada0 Linux: Add parameter to Makefile for enabling SSSE3 and SSE4.1 support in compiler 2016-08-17 08:36:32 +02:00
Mounir IDRASSI
3fb2eedab8 Linux: Enable gcc AES-NI built-in functions and adapt Hyper-V AES detection code to gcc. 2016-08-08 00:11:22 +02:00
Mounir IDRASSI
438753522e Revert "Makefile: fix build under gcc6" 2016-05-13 22:34:33 +02:00
Tomasz Przybył
bf47711ee7 Makefile: fix build under gcc6
Veracrypt for build under GCC6 required using compatibility flag `-std=c++98` against change default C++ frontend in GCC6.

The C++ frontend now defaults to C++14 standard instead of C++98 it has
been defaulting to previously, for compiling older C++ code that might
require either explicitly compiling with selected older C++ standards,
or might require some code adjustment, see
http://gcc.gnu.org/gcc-6/porting_to.html for details.  The experimental
C++17 support has been enhanced in this release.

from: https://gcc.gnu.org/ml/gcc-announce/2016/msg00000.html
2016-05-13 08:39:22 +02:00
David Foerster
39eae0e4c3 Remove some trailing whitespace 2016-03-31 12:24:41 +02:00
Mounir IDRASSI
fd26f49958 Linux: fix mount failure with "Invalid characters encountered" error when building using gcc-5 by disabling the new C++ ABI. For this to work, wxWidgets static library must be built and used by VeraCrypt by specifying WXSTATIC=1 in make command line. 2016-03-17 14:09:59 +01:00
Mounir IDRASSI
bda7a1d0bd Copyright: update dates to include 2016. 2016-01-20 00:53:24 +01:00
Mounir IDRASSI
041024fbb9 Update license information to reflect the use of a dual license Apache 2.0 and TrueCrypt 3.0. 2015-08-06 00:04:25 +02:00
Mounir IDRASSI
944b6aa53f Linux: Solve error when building against dynamic wxWidgets library, especially under Ubuntu. 2015-07-11 01:58:36 +02:00
Mounir IDRASSI
ad9b40d599 Linux: solve link error on recent Ubuntu when using shared wxWidgets. 2015-01-02 17:12:36 +01:00
Mounir IDRASSI
73bf608efc MacOSX : Correct issue of compiling assembly files in both 32-bit and 64-bit mode. Modify Makefiles to correct compilation process using latest Xcode. 2014-11-08 23:22:05 +01:00
Mounir IDRASSI
5218b6dfe8 Add VeraCrypt specific Linux packaging code in Makefiles and add various helper scripts. The original TrueCrypt sources didn't contain anything about this. 2014-11-08 23:20:17 +01:00
Mounir IDRASSI
4b6594325f Update wxWidgets compilation flags in order to be compatible with wxWidgets 3.0 and remove unneeded dependencies to ensure maximum compatibility. 2014-11-08 23:20:06 +01:00
Mounir IDRASSI
f701dc1c29 Correct typos introduced inadvertently 2014-11-08 23:19:39 +01:00