Commit Graph

46 Commits

Author SHA1 Message Date
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
Jertzukka 0ffd61a55c Linux/FreeBSD: Fix privilege escalation prompts being ignored (#1100)
Currently if you fail the privilege escalation prompt, the second
one and consecutively every second will be ignored. This is because
if we do not --use-dummy-sudo-password and are on Linux/FreeBSD,
we will be prompted for password twice for one evaluation in the
while(!ElevatedServiceAvailable) loop.

For the fix, we make sure that we run the prompt only once for each
case.
2023-06-10 01:07:27 +02:00
Jertzukka 6ced991d98 Fix issues launching fsck via terminal on Linux (#1086)
Currently on a system without xterm or konsole (like fresh
Ubuntu install) the fsck check will not launch. Added
gnome-terminal as an alternative and fixed an issue where
konsole will always error out as --title and --caption are
no longer valid arguments.

Previously the error message was simply "xterm not found", so
new LangString LINUX_EX2MSG_TERMINALNOTFOUND was added to let the
user knows which programs they need to get the feature working.
2023-06-01 09:01:53 +02:00
ZhanYF b6513d82f8 OpenBSD vnconfig no longer needs -c option (#1002)
Co-authored-by: Your Name <you@example.com>
2023-05-19 00:29:59 +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 e7b3ca7334 Linux: try to fix some rare issues when invoking sudo using fork by waiting 1 second for forked process to start 2021-11-28 00:50:26 +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
chasonr 94cd0a477f Make compatble with pam_tmpdir (#793)
If pam_tmpdir is in use, use the temporary directory for the sudoing
user, rather than that for root.
2021-07-14 13:55:15 +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
Thierry Lelegard 66e550d11f Fixed macFUSE support for macOS 11 (Big Sur) (#699) 2020-11-28 17:10:51 +01: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
Mounir IDRASSI a4ed6be38c MacOSX: fix compilation error caused by missing StringConverter::ToWide method that takes a size_t argument (we cast to uint32) 2019-12-16 00:46:26 +01:00
Hanno Böck 5a56462959 Make sure password gets deleted in case of exception in CoreUnix::MountVolume (#565) 2019-12-05 16:09:40 +01:00
alt3r 3go 1fd212016e UNIX: make sector size mismatch error more verbose (#552) (#561)
Signed-off-by: alt3r 3go <alt3r.3go@protonmail.com>
2019-12-01 14:26:38 +01:00
Mounir IDRASSI ce78f89017 Linux/FreeBSD: Add CLI switch to force use of old sudo behavior of sending a dummy password
The new switch is --use-dummy-sudo-password
2019-11-04 00:10:08 +01:00
Mounir IDRASSI 80cc18f667 Linux/FreeBSD: Fix regression causing admin password to be requested too many times in some cases 2019-11-03 15:38:42 +01:00
Mounir IDRASSI 3bb661244c Linux: fix compilation error under CentOS 6 2019-10-17 14:09:33 +02:00
El Mostafa Idrassi 9463a628a6 Linux/FreeBSD: Use of 'sudo -n uptime' command to check whether user has an active 'sudo' session instead of the use of a 'dummy' password. (#513)
Signed-off-by: El Mostafa IDRASSI <el-mostafa.idrassi@prestalab.net>
2019-10-08 18:11:50 +02:00
Mounir IDRASSI 012f7bfa93 Linux: Remove limitation of hidden volume protection on disk with sector size larger than 512 bytes. 2018-08-10 23:14:11 +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 0ebc26e125 Update IDRIX copyright year 2017-06-23 22:15:59 +02:00
Mounir IDRASSI a2b008c747 MacOSX: remove unused variable 2016-10-17 18:40:32 +02:00
Mounir IDRASSI 7d6347f468 MacOSX: remove MacFUSE dependency and link against OSXFuse library. Now, only standard OSXFuse install is needed without MacFUSE compatibility option. 2016-10-17 18:40:21 +02:00
Mounir IDRASSI d8a7de8ffb Linux: Disable Kernel crypto if volume encrypted using Kuznyechik or Magma 2016-08-17 08:36:33 +02:00
David Foerster 11716ed2da Remove trailing whitespace 2016-05-10 22:18:34 +02:00
David Foerster 0c51cfa5f6 Reset bogus executable permissions 2016-05-01 23:29:43 +02:00
Mounir IDRASSI fffb3bde7a Linux: fix compilation error 2016-02-22 07:57:03 +01:00
Mounir IDRASSI facfda73eb Linux: fix mount issue on Fedora 23 by forcing the creation of a default loop device. 2016-02-22 00:34:36 +01:00
Mounir IDRASSI faf00ca1e0 MacOSX: Correctly detect newer versions of OSXFuse 2016-02-21 10:59:11 +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 c3b77fba25 Linux: Support checking/reparing mounted filesystem on KDE when xterm not available 2015-07-04 17:48:20 +02:00
Mounir IDRASSI 2cd39b37c2 Linux/MacOSX: restore normal file mode to some source files 2015-06-24 15:33:23 +02:00
Mounir IDRASSI 9913af3a8e Linux/MacOSX: first dynamic mode implementation 2015-06-24 15:33:16 +02:00
Mounir IDRASSI 474505d704 Linux: solve mount point permission issues for some users where the non-FAT volumes were only mounted in read-only mode 2015-03-23 09:07:58 +01:00
Mounir IDRASSI c178e325b8 Linux/MacOSX: Implement TrueCrypt conversion and loading support. Correct many GTK issues linked to multi-threaded origine of events by implementing an automatic mechanism for handling such requests in the main thread. 2014-12-30 17:06:20 +01:00
Mounir IDRASSI 07156b6c09 Linux/MacOSX: Enhance performance by implementing the possibility to choose the correct hash algorithm of volumes during various operations (mount, change password...), both using the GUI and the command line. 2014-12-19 18:41:41 +01:00
Mounir IDRASSI 8ee17fd727 MacOSX : Support detection of OSXFUSE and the presence of MacFUSE compatibility layer. 2014-11-08 23:22:16 +01:00
Mounir IDRASSI a5c1978eef Remove remaining legacy cryptographic algorithms that are never used by VeraCrypt. 2014-11-08 23:21:35 +01:00
Mounir IDRASSI 41a22ca4e7 Change namespace from TrueCrypt to VeraCrypt. Rename method from Resources Resources::GetTrueCryptIcon to Resources::GetVeraCryptIcon. 2014-11-08 23:20:14 +01:00
Mounir IDRASSI be4ca4bac6 Replace TrueCrypt from Linux/MacOSX mount point names 2014-11-08 23:19:24 +01:00
Mounir IDRASSI edc9f36322 Replace TrueCrypt references in added sources and resources by VeraCrypt ones. 2014-11-08 23:19:03 +01:00
Mounir IDRASSI 7ffce028d0 Add TrueCrypt 7.1a MacOSX/Linux specific source files. 2014-11-08 23:18:59 +01:00