VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2023-07-01Windows: fix compilation warningsMounir IDRASSI1-3/+3
2023-07-01Windows: Fix formatting issue during volume creation by using /Y for ↵Mounir IDRASSI3-31/+83
format.com and specifying removal parameter in FormatEx The usage of /Y parameter in format.com simplifies the logic and makes the code robust since we don't need to send \n to the format.com process. Specifying RemovableMedia parameter to FormatEx fixes its failure in Windows 10 and later to perform quick format. This is also more adequate since we are mounting the volume as removable media for the formatting process. We also add better error management in order to display adequate error message to the user in case of failure
2023-07-01Windows: Don't make Mount button split button if it is for dismountingMounir IDRASSI1-44/+62
If the currently selected item in the drive list is a mounted volume that can be dismounted, the Mount button displays "Dismount" and so we should not add the popup menu of "mount without cache" to it.
2023-06-30Windows: Support drag-n-drop of files in Expander for mounting. Fix ↵Mounir IDRASSI1-24/+12
drag-n-drop of keyfiles. To fix drag-n-drop of keyfiles, we remove the password drop target since it was blocking the standard drop of files and drop target doesn't work because of UIPI restrictions across privilege levels since Expander is started elevated
2023-06-30Correctly detect ARM builds when listing CPU features in headersMounir IDRASSI2-6/+6
2023-06-29Linux: Fix wrong size for hidden volume when selecting the option to use all ↵Mounir IDRASSI1-1/+1
free space (fix by @Jertzukka)
2023-06-29Linux/FreeBSD: Make pcsclite a dependency of the packages and the generic ↵Mounir IDRASSI4-13/+15
installer
2023-06-29Linux: Add libpcsclite dependency into compilation guide (#1136)Jertzukka1-0/+1
After the EMV support commits, the project won't build anymore without the new dependency of libpcsclite.
2023-06-29EMV keyfile support: Overall code improvements and bug fixesMounir IDRASSI81-1548/+4628
2023-06-28Add EMV functionality (#1080)mmauv61-535/+2396
* 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-28Increment version to 1.26.3. Update Release NotesMounir IDRASSI15-42/+42
2023-06-28Windows: Add comboxbox to Format wizard to choose ↵Mounir IDRASSI5-22/+85
QuickFormat/FastCreate/FullFormat This required changes to internal logic and addition of new UI strings
2023-06-28Windows: Better handling of quick format for file containerMounir IDRASSI5-23/+104
We write a zeroed sector every 128 MiB, leaving other sectors untouched This helps users visualize the progress of actual file creation while forcing Windows to allocate the disk space of each 128 MiB chunk immediately, otherwise, Windows would delay the allocation until we write the backup header at the end of the volume which would make the user think that the format process has stalled after progress bar reaches 100%.
2023-06-25Windows: 100% localization of Expander UI stringsMounir IDRASSI4-40/+70
2023-06-25Windows: Better language localization support for Expander.Mounir IDRASSI5-5/+36
More work is needed to localize remaining string resources
2023-06-24Windows: Add 7zWindows.h file to Lzma project filesMounir IDRASSI4-0/+8
2023-06-23Dll125 lzma (#1120)DLL12524-1149/+2124
* Update LZMA to latest * Add missing file
2023-06-23Windows: if /fastCreateFile set, request SE_MANAGE_VOLUME_NAME privileges ↵Mounir IDRASSI2-6/+24
(credits: @xnoreq) Display a warning if request failed and allow to continue without fast creation
2023-06-23Windows: Make SetPrivilege return error if AdjustTokenPrivileges cannot ↵Mounir IDRASSI1-2/+5
adjust privileges
2023-06-20Windows: Allow selecting size unit (KB/MB/GB) for generated keyfilesMounir IDRASSI4-27/+68
This change also makes it possible to generate keyfiles larger than 1 MiB although only the first 1 MiB will be taken into account by VeraCrypt. Update strings in XML files
2023-06-18Windows: make Expander first check file existence before proceeding furtherMounir IDRASSI1-1/+6
2023-06-18Linux: make .deb package compatible with Debian 12Mounir IDRASSI1-1/+2
2023-06-14Linux/macOS: only wipe password/PIM text controls if they are not emptyMounir IDRASSI2-2/+10
This fixes a crash on macOS with latest wxWidgets 3.2.2.1 where GetLineLength returns -1
2023-06-13Linux: Fix compatibility of generic installers with old Linux distrosMounir IDRASSI2-2/+6
In old Linux distributions, tar command doesn't support "--keep-directory-symlink" so we now dynamically detect if this switch is support and then we use it if it is available
2023-06-13Crypto: Fix detection of SSSE3 intrinsics in compilerMounir IDRASSI1-1/+1
We use correct define CRYPTOPP_BOOL_SSSE3_INTRINSICS_AVAILABLE
2023-06-13Linux: use wxWidgets 3.2.2.1 for official VeraCrypt Linux packagesMounir IDRASSI8-16/+16
2023-06-13Linux: fix static build against wxWidgets 3.2.2.1Mounir IDRASSI1-1/+3
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-13Fix WXSTATIC building on latest wxWidgets stable 3.2.2.1 (#1103)Jertzukka1-1/+1
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-10Linux/FreeBSD: Fix privilege escalation prompts being ignored (#1100)Jertzukka1-3/+5
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-06Update copyright on various filesMounir IDRASSI3-5/+5
2023-06-05Linux/macOS: Fix error during creation of installation packageMounir IDRASSI1-3/+3
"-R" switch was missing from the "cp" command
2023-06-04Update copyrights in Readme.txtMounir IDRASSI1-3/+3
2023-06-04Increment version to 1.26.2. Update Release NotesMounir IDRASSI14-42/+42
2023-06-04Windows: Possible workaround for logarithmic slowdown for Encrypt-In-Place ↵Mounir IDRASSI2-21/+52
on large volumes (relates to #1063) We replace absolute file pointer moving by relative moving with respect to current position. This was implemented as a workaround to address the performance issues related to in-place encryption. When using SetFilePointerEx() with FILE_BEGIN as the reference point, reaching the end of large drives during in-place encryption can cause significant slowdowns. By moving the file pointer relatively, these performance issues are mitigated.
2023-06-02Windows: Add dropdown menu to Mount button to allow mounting without cacheMounir IDRASSI7-8/+78
2023-06-01Fix issues launching fsck via terminal on Linux (#1086)Jertzukka5-5/+22
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-05-29fix wrong URL to clone EDK2 repo (#1084)Passw1-1/+1
2023-05-28Pkcs5.c: Fix typos where SHA256 is mentionned instead of Blake2sMounir IDRASSI1-5/+5
This didn't cause any issue because SHA256_DIGESTSIZE is equal to BLAKE2S_DIGESTSIZE
2023-05-27Prevent failing fs options being shown in --text --create (#1078)Jertzukka1-15/+23
Removes the options exFAT and Btrfs being shown when creating a volume in text mode when the system does not support them and will end up erroring out at the end. Hide Btrfs option when the volume is too small, as we will anyways fail right after. Hardcoded numbering changed to dynamic as the available options are not necessarily consecutive.
2023-05-27Linux/macOS: Make RNG implementation match documentation and the Windows ↵Mounir IDRASSI1-8/+15
implementation
2023-05-27Linux/macOS: explicitely initialize hash algo before hashing random poolMounir IDRASSI1-2/+3
The lack of explicit hash initialization was causing issue with Blake2s because it doesn't allow further processing once a digest value was returned. Other hash algorithms don't have this restriction. Not we explicitely initialize all hash algorithms which is the correct way to do things.
2023-05-26Windows: Add missing Blake2s source files to VS 2019 crypto projectMounir IDRASSI1-0/+3
2023-05-26Windows: Add missing update of libzip zip_err_str.c and fix libzip related ↵Mounir IDRASSI5-86/+153
project configuration
2023-05-25Update Libzip to latest 1.9.2 (#1071)DLL125144-4059/+8304
* Libzip 1.9.2 Updated Libzip to latest version 1.9.2 and changed version number in the config.h from 1.7.3 to 1.9.2. Not sure if anything else needs to be tweaked :) * Modified Libzip to work with Visual studio * Update README.md Update libzip copyright. * Added the missing files. I've added the missing files zipconf.h and config.h, I've missed those sorry for that!
2023-05-22Linux: Fix printing error when checking freespace during volume creationMounir IDRASSI1-1/+6
No parent directory specified in the path, we assume current directory We first check if parent directory exists before checking its free space using wxgetDiskSpace Based on idea proposed by @bogdro in PR#1025
2023-05-21Linux/macOS: Better handling of wrong PIM value in text mode (enhances PR#1026)Mounir IDRASSI1-1/+4
2023-05-21Keep PIM secret and re-ask when user entered a wrong value (#1026)Bogdan Drozdowski1-1/+5
Co-authored-by: Bogdan Drozdowski <>
2023-05-19Added line breaks between new copyright holders (#963)Marius Kjærstad1-2/+2
2023-05-19update zlib to latest version 1.2.13 (#986)Wendigo18-228/+262
2023-05-19wxWidget assert failure bug (#999)Es6-107/+113
* Removal of any of the any of `wxALIGN_RIGHT`/`wxALIGN_CENTRE_HORIZONTAL`/`wxALIGN_BOTTOM`/`wxALIGN_CENTRE_VERTICAL` when used in conjunction with `wxEXPAND` wxWidget has an "assert" that gets triggered anytime `wxEXPAND` gets used with an alignment property (useless override). This leads to a popup backtrace everytime a non-compliant widget is opened. * Removal of missed `wxALIGN_RIGHT`/`wxALIGN_CENTRE_HORIZONTAL`/`wxALIGN_BOTTOM`/`wxALIGN_CENTRE_VERTICAL` when used in conjunction with `wxEXPAND` * Removed property 'label' for wxMenuBar as no longer used (wxFormBuilder) * Removed redundant 'wxALIGN_RIGHT' for the "OK" button in the preference panel (there is a spacer already in-place that pushes the buttons to the right) * Removed redundant 'wxALIGN_RIGHT' for items in the wizard panel's (`WizardFrameBase`) button bar and added width spacing for the 2 spacers between the buttons to make up for the change. * Changed constructor signature for the `WizardPage` and all subclasses The addition of the wxString 'name' arg brings it inline with the new wxFromBuilder v3.10.1 output so that editing+generating the forms from it won't brake the build now. * Removed remaining redundant 'wxALIGN_*' that were paired with 'wxEXPAND'. * Added missing default flags to wxFileName::Normalize(..) method The old empty initialization which was fine up to v2.8.12 of wxWidget gives off a compile warning. Since the default `wxPATH_NORM_ALL` is now depreciated (v3.x) the equivalent individual flags must be explicitly given. * Changed spaces to tabs to bring last commit inline with the rest of the src code