VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Volume
AgeCommit message (Collapse)AuthorFilesLines
2024-06-16Improve and simplify macOS builds (#1276)Deniz Türkoglu1-1/+5
* Add missing macOS requirement for 'make package' We need packages for the last build step on macOS, update docs to reflect the requirement. * Add build instructions using homebrew On macOS, we can use a package manager to easily install dependencies. This simplifies onboarding and building Veracrypt. * Add flag to use homebrew packages When building, we can use prebuilt wxwidgets from homebrew to simplify and speed up local building. We also put the package behind a flag as it's optional during development. * Skip signing for local builds When building with homebrew, skip signing. This can be put behind a flag to enable, if needed. * Use system yasm on macOS if available The binary in the repo is not universal (x86_64) and therefore building fails on arm architecture if Rosetta is not installed. Use local yasm if available. * Build local arch only in development When building via homebrew and locally, build only the local arch which skips ASM for arm(Mx) for MacOS. This removes the need to have rosetta installed for building. * Fix compilation issue when COMPILE_ASM is undefined Use a conditional check for COMPILE_ASM not being false instead of true. This avoids passing the variable to other parts of the build script. * Set SDK 12 as the minimum requirement and target Align the requirement to SDK 12 in both the makefile and script, and update the comment to remove confusion. I chose to leave this on 12 to be on the side of err and support as many building platforms as possible, when we can support. The local script now also sets the target using the local sdk version. This should improve the local development experience. * Fix wrong architecture for macOS in x86 builds We now build only the current arch for local development builds in macOS. This change also fixes the x86 builds failing. * Add instructions brew backed macOS local builds Flags to build a local build using homebrew packages are not default and require parameter -b to build. We also don't build packages directly, which requires -p. * Fix wxwidgets not linking in local x86 macOS development builds * Clarify build location in the document
2024-06-12Avoid conflict with C++17 features std::byte by using uint8 type instead of byteMounir IDRASSI18-153/+153
2023-11-19Linux/MacOSX: put entries at line start and use tabs instead of spacesMounir IDRASSI1-92/+92
2023-11-13wolfCrypt as crypto backend for VeraCrypt (#1227)lealem4716-130/+570
* wolfCrypt as crypto backend for VeraCrypt * Refactor to use EncryptionModeWolfCryptXTS class
2023-07-24Linux/macOS: Remove TrueCrypt supportMounir IDRASSI11-107/+54
2023-06-29EMV keyfile support: Overall code improvements and bug fixesMounir IDRASSI5-49/+59
2023-06-28Add EMV functionality (#1080)mmauv5-52/+53
* 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>
2022-03-08Implement support of Blake2s-256 hash algorithm and remove deprecated ↵Mounir IDRASSI11-169/+60
algorithms RIPEMD-160 and GOST89.
2022-02-13Linux/FreeBSD: Enable building without AESNI support by setting environment ↵Mounir IDRASSI1-0/+4
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.
2021-08-16MacOSX: Make AESNI availability linked to compiler target and not ↵Mounir IDRASSI2-9/+3
compilation host
2021-07-14Linux/macOS: re-order PRF algorithms from faster to slower for quicker ↵Mounir IDRASSI1-2/+2
autodetection mounting when usual algorithms used
2020-06-28Linux/MacOSX: Erase sensitive memory explicitly instead of relying on the ↵Mounir IDRASSI1-1/+1
compiler not optimizing calls to method Memory::Erase
2020-06-26Linux/MacOSX: use standard std::shared_ptr instead of our custom ↵Mounir IDRASSI1-1/+3
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-11Switch from auto_ptr to unique_ptr (#638)Christopher Bergqvist2-4/+2
2019-12-09Linux: fix NOASM compilation (#563) (#568)alt3r 3go1-8/+8
Signed-off-by: alt3r 3go <alt3r.3go@protonmail.com>
2019-11-15Debug build: fix ParameterIncorrect error on hash benchmark start (#542) (#544)alt3r 3go1-1/+1
2019-11-04Linux/MacOSX: Add switch to force the use of legacy maximum password length ↵Mounir IDRASSI1-0/+1
(64 UTF8 bytes) The switch is --legacy-password-maxlength
2019-10-24Linux/MacOSX: Better approach to avoid that jitterentropy code is optimized ↵Mounir IDRASSI1-1/+3
by the compiler
2019-10-23Linux/MacOSX: Add missing JitterEntropy implementationMounir IDRASSI1-0/+1
2019-10-06MacOSX: fix link error under Xcode 4.6.3VeraCrypt_1.24Mounir IDRASSI2-3/+7
2019-01-28Increase password maximum length to 128 bytes from 64 bytesMounir IDRASSI2-2/+3
2019-01-25Linux/MacOSX crypto: report XTS optimization implemented previously on WindowsMounir IDRASSI1-49/+90
c
2018-08-10Linux/MacOSX/FreeBSD: In TrueCrypt mode, reject Streebog as KDF since it is ↵mounir1-2/+2
not supported.
2018-06-14Linux/MacOSX/FreeBSD: better handling for mounting systen encrypted disks ↵Mounir IDRASSI1-16/+16
whose first sector has been overwritten (e.g. during windows repair).
2018-06-11Linux/MacOSX/FreeBSD: Support mounting partially encrypted system ↵Mounir IDRASSI2-3/+41
partitions/drivers in ReadOnly mode in order to allow troubleshooting in some cases.
2018-03-27Crypto: Add support for 5 new cascades of cipher algorithms ↵Mounir IDRASSI4-2/+233
(Camellia-Kuznyechik, Camellia-Serpent, Kuznyechik-AES, Kuznyechik-Serpent-Camellia and Kuznyechik-Twofish)
2017-11-27SIMD speed optimization for Kuznyechik cipher implementation (up to 2x ↵Mounir IDRASSI3-1/+50
speedup). Based on https://github.com/aprelev/libgost15.
2017-07-02Linux/MacOSX: use aligned memory for allocating hash context to avoid issues ↵Mounir IDRASSI1-5/+5
on some platforms especially for Streebog.
2017-06-27MacOSX: various changes for assembly files build. Don't use 32-bit assembly ↵Mounir IDRASSI1-14/+14
code of SHA-512 since it is not compatible with PIE configuration of OSX compiler (absolute addressing used)
2017-06-23Update IDRIX copyright yearMounir IDRASSI36-36/+36
2017-06-23Linux/MacOSX: use yasm instead of nasm for compiling all assembly files.Mounir IDRASSI1-15/+15
2017-06-23Linux/MacOSX: fix missing namespace in call to Cipher::IsHwSupportEnabledMounir IDRASSI1-1/+1
2017-06-23Crypto: Add optimized SHA-512 and SHA-256 assembly implementations for ↵Mounir IDRASSI1-0/+44
x86_64 and x86. This improves speed by 30%.
2017-06-21Crypto: Add optimized Camellia assembly implementation for x86_64 based on ↵Mounir IDRASSI3-1/+61
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.
2016-12-26Linux & MacOSX: automatically check TrueCryptMode in password dialog when ↵Mounir IDRASSI1-0/+27
selecting a container file that has the .tc file extension
2016-12-26MacOSX: use Yasm to build Twofish 64-bit assembly code on OSX since native ↵Mounir IDRASSI1-1/+1
compiler doesn't support GAS syntax
2016-12-07Crypto: Add optimized Twofish assembly implementation for x86_64.Mounir IDRASSI3-1/+40
2016-10-17Crypto: Use SIMD optimized Serpent implementation from Botan. 2.5x speed ↵Mounir IDRASSI3-4/+54
gain factor. Update credits and copyrights notice.
2016-10-17Add test vectors for Kuznyechik and GOST89 (the later is deprecated)Mounir IDRASSI4-3/+141
2016-10-17Crypto: deprecate GOST89 so that it can't be used to create new volumes. ↵Mounir IDRASSI1-1/+1
Keep only for existing volumes.
2016-08-17Linux/MacOSX: Add Streebog to the list of supported hash algorithms used for ↵Mounir IDRASSI1-0/+1
key derivation.
2016-08-17Linux: fix various compilation issues under Linux.Mounir IDRASSI2-3/+3
2016-08-15Windows: Add support for Streebog (hash) and kuznyechik (encryption)Mounir IDRASSI11-1/+188
2016-07-29Crypto: Use Hyper-V AES-NI detection workaround when displaying AES hardware ↵Mounir IDRASSI1-1/+2
availability in GUI.
2016-07-25Windows: solve benchmark issue for Whirlpool which caused wrong numbers when ↵Mounir IDRASSI1-1/+1
a 1GB buffer is chosen.
2016-06-19Linux/MacOSX: Solve compilation error linked to Camellia cipher addition.Mounir IDRASSI2-3/+4
2016-06-02Crypto: Add support for Japanese encryption standard Camellia, including for ↵Mounir IDRASSI6-1/+102
system encryption.
2016-05-10Remove trailing whitespaceDavid Foerster36-157/+157
2016-01-20Copyright: update dates to include 2016.Mounir IDRASSI36-36/+36
2015-12-31Cryptography: Optimize Whirlpool implementation by using public domain ↵Mounir IDRASSI1-0/+1
assembly code developed by Wei Dai