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

77 Commits

Author SHA1 Message Date
Mounir IDRASSI
3f976c24d2 Linux/macOS: Remove TrueCrypt support 2023-07-24 08:48:52 +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
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
Mounir IDRASSI
d448713e61 MacOSX: Make AESNI availability linked to compiler target and not compilation host 2021-08-16 00:26:37 +02:00
Mounir IDRASSI
ad544681c7 Linux/macOS: re-order PRF algorithms from faster to slower for quicker autodetection mounting when usual algorithms used 2021-07-14 23:59:31 +02:00
Mounir IDRASSI
885cc1d01d Linux/MacOSX: Erase sensitive memory explicitly instead of relying on the compiler not optimizing calls to method Memory::Erase 2020-06-28 01:06:39 +02:00
Mounir IDRASSI
5fb407cffe Linux/MacOSX: use standard std::shared_ptr instead of our custom implementation which is kept for compatibility with older compilers. We also introduce compatibility code for old compilers that don't define std::unique_ptr 2020-06-26 01:22:18 +02:00
Christopher Bergqvist
0a2c565aa9 Switch from auto_ptr to unique_ptr (#638) 2020-06-11 18:02:28 +02: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
alt3r 3go
64de5bc78a Debug build: fix ParameterIncorrect error on hash benchmark start (#542) (#544) 2019-11-15 12:28:06 +01:00
Mounir IDRASSI
a7d5b6a477 Linux/MacOSX: Add switch to force the use of legacy maximum password length (64 UTF8 bytes)
The switch is --legacy-password-maxlength
2019-11-04 00:09:52 +01:00
Mounir IDRASSI
96c90d18c2 Linux/MacOSX: Better approach to avoid that jitterentropy code is optimized by the compiler 2019-10-24 21:07:39 +02:00
Mounir IDRASSI
478066c607 Linux/MacOSX: Add missing JitterEntropy implementation 2019-10-23 22:46:25 +02:00
Mounir IDRASSI
6d7f7527be MacOSX: fix link error under Xcode 4.6.3 2019-10-06 19:14:45 +02:00
Mounir IDRASSI
cdd1179c63 Increase password maximum length to 128 bytes from 64 bytes 2019-01-28 17:16:33 +01:00
Mounir IDRASSI
ce0a34941a Linux/MacOSX crypto: report XTS optimization implemented previously on Windows
c
2019-01-25 19:23:13 +01:00
mounir
1d37997d3b Linux/MacOSX/FreeBSD: In TrueCrypt mode, reject Streebog as KDF since it is not supported. 2018-08-10 01:31:30 +02:00
Mounir IDRASSI
22b9ca94b3 Linux/MacOSX/FreeBSD: better handling for mounting systen encrypted disks whose first sector has been overwritten (e.g. during windows repair). 2018-06-14 00:31:05 +02:00
Mounir IDRASSI
d5dca62b04 Linux/MacOSX/FreeBSD: Support mounting partially encrypted system partitions/drivers in ReadOnly mode in order to allow troubleshooting in some cases. 2018-06-11 00:14:53 +02:00
Mounir IDRASSI
7df9724e20 Crypto: Add support for 5 new cascades of cipher algorithms (Camellia-Kuznyechik, Camellia-Serpent, Kuznyechik-AES, Kuznyechik-Serpent-Camellia and Kuznyechik-Twofish) 2018-03-27 16:15:57 +02:00
Mounir IDRASSI
f53eb8e260 SIMD speed optimization for Kuznyechik cipher implementation (up to 2x speedup). Based on https://github.com/aprelev/libgost15. 2017-11-27 16:16:35 +01:00
Mounir IDRASSI
d761076903 Linux/MacOSX: use aligned memory for allocating hash context to avoid issues on some platforms especially for Streebog. 2017-07-02 12:08:04 +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
9efdf8ffca Linux/MacOSX: fix missing namespace in call to Cipher::IsHwSupportEnabled 2017-06-23 19:05:46 +02:00
Mounir IDRASSI
546d6cff44 Crypto: Add optimized SHA-512 and SHA-256 assembly implementations for x86_64 and x86. This improves speed by 30%. 2017-06-23 02:11:21 +02:00
Mounir IDRASSI
70097ecfe5 Crypto: Add optimized Camellia assembly implementation for x86_64 based on work by Jussi Kivilinna (https://github.com/jkivilin/supercop-blockciphers). This improve speed by a factor of 2.5 when AES-NI supported by CPU and by 30% if AES-NI not supported. 2017-06-21 01:39:55 +02:00
Mounir IDRASSI
1ef6177ae3 Linux & MacOSX: automatically check TrueCryptMode in password dialog when selecting a container file that has the .tc file extension 2016-12-26 00:00:04 +01: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
263abeee3a Crypto: Add optimized Twofish assembly implementation for x86_64. 2016-12-07 12:36:04 +01:00
Mounir IDRASSI
e5a9e9239b Crypto: Use SIMD optimized Serpent implementation from Botan. 2.5x speed gain factor. Update credits and copyrights notice. 2016-10-17 18:40:23 +02:00
Mounir IDRASSI
b65eabe23d Add test vectors for Kuznyechik and GOST89 (the later is deprecated) 2016-10-17 18:40:16 +02:00
Mounir IDRASSI
d18ecc1a37 Crypto: deprecate GOST89 so that it can't be used to create new volumes. Keep only for existing volumes. 2016-10-17 18:40:15 +02:00
Mounir IDRASSI
b56e8c5c4b Linux/MacOSX: Add Streebog to the list of supported hash algorithms used for key derivation. 2016-08-17 08:36:33 +02:00
Mounir IDRASSI
2780ac962e Linux: fix various compilation issues under Linux. 2016-08-17 00:08:18 +02:00
Mounir IDRASSI
e90e24b30b Windows: Add support for Streebog (hash) and kuznyechik (encryption) 2016-08-15 01:09:11 +02:00
Mounir IDRASSI
fe31cf5b83 Crypto: Use Hyper-V AES-NI detection workaround when displaying AES hardware availability in GUI. 2016-07-29 22:40:44 +02:00
Mounir IDRASSI
3aaf5c7045 Windows: solve benchmark issue for Whirlpool which caused wrong numbers when a 1GB buffer is chosen. 2016-07-25 08:26:09 +02:00
Mounir IDRASSI
45617a3285 Linux/MacOSX: Solve compilation error linked to Camellia cipher addition. 2016-06-19 00:38:20 +02:00
Mounir IDRASSI
76d3bc631e Crypto: Add support for Japanese encryption standard Camellia, including for system encryption. 2016-06-02 00:12:00 +02:00
David Foerster
11716ed2da Remove trailing whitespace 2016-05-10 22:18:34 +02:00
Mounir IDRASSI
bda7a1d0bd Copyright: update dates to include 2016. 2016-01-20 00:53:24 +01:00
Mounir IDRASSI
0c2c0a846d Cryptography: Optimize Whirlpool implementation by using public domain assembly code developed by Wei Dai 2015-12-31 01:56:19 +01:00
Mounir IDRASSI
efa436974d Linux/MacOSX: Implement Unicode passwords suppport. Make validation of parameters in GUI more robust. 2015-11-30 13:58:19 +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
69a8ad5bba Linux/MacOSX: remove unused variable. 2015-07-25 23:59:01 +02:00
Mounir IDRASSI
2d0d4b06b1 Linux: Solve compilation warning (unused variables, pointer cast) 2015-07-11 01:58:39 +02:00