Commit Graph
37 Commits
Author SHA1 Message Date
Mounir IDRASSI 9ff43ba473 Windows: fix KDF completion lifetime
Hold a requester reference until header parsing can no longer enqueue KDFs.
This prevents stale completion signals from allowing cleanup while workers
still use request-owned state.

Add bounded tests of the production pool and caller completion protocol.
2026-10-16 18:06:08 +09:00
Mounir IDRASSI 0cb9fad329 Harden encryption fragment completion against queue slot reuse
Capture the parent before releasing a fragment slot on Windows and Unix.
This removes the completion code's dependency on the first-fragment slot
holding up the ring until the requester observes completion.
2026-10-16 18:05:24 +09:00
Mounir IDRASSI d26be95861 Update copyright year to 2026 2026-06-09 09:56:25 +09:00
Mounir IDRASSI c3ce2db9ac Document fixed Argon2id header key size
Argon2id includes the requested output length in its computation, so deriving 192 bytes and using a prefix is not equivalent to deriving only the selected cipher's key material length. This differs from PBKDF2, where the prefix property made this detail invisible.

VeraCrypt derives the maximum header key material currently needed by the supported cipher/cascade set, which is 192 bytes, and then uses the required prefix for the selected encryption algorithm. For AES-XTS this means the first 64 bytes of the 192-byte Argon2id output are used.

Make this design rule explicit in code and documentation by introducing ARGON2_HEADER_KEYDATA_SIZE instead of relying implicitly on GetMaxPkcs5OutSize. If a future cipher or cascade requires more than 192 bytes, that must be handled as an explicit format/design change.

Document the 192-byte Argon2id header KDF output requirement so third-party implementations derive the same header key material.

References: https://github.com/veracrypt/VeraCrypt/issues/1614
2026-05-21 18:10:06 +09:00
Mounir IDRASSI 49c68ea1ab Windows: handle Argon2 derivation failures 2026-04-20 19:49:45 +09:00
Mounir IDRASSI 41812674bb Windows: correct processor group affinity handling and off-by-one mapping
- Replace dynamic GetProcAddress usage with direct SetThreadGroupAffinity call since we run under Windows 10 minimum
- Compute affinity mask based on actual active processor count
- Fix off-by-one when assigning threads to processor groups (use > instead of >=), preventing premature group advance
- Improves correctness on multi-group (>=64 CPU) systems
2025-09-13 23:30:13 +09:00
Mounir IDRASSI 9dc24ba7d0 Windows: speedup PRF autodetection mode by implementing abort mechanism in PBKDF2/Argon2 primitives 2025-06-29 21:44:32 +09:00
Mounir IDRASSI 3c17b8ced2 Windows: Add support for Argon2id as an alternative to PBKDF2 key derivation 2025-06-25 15:44:31 +09:00
Mounir IDRASSI b673901503 Move copyright and links to "AM Crypo", amcrypto.jp and veracrypt.jp 2025-05-11 16:02:20 +09:00
Mounir IDRASSI 1b35abb191 Increment version to 1.26.18. Update copyright date. Update Release Notes. Update Windows drivers. 2025-01-14 12:26:28 +01:00
Mounir IDRASSI c86577fc0e Windows: remove 32-bit logic from the code since we support only 64-bit. remove 32-bit EFI bootloader files.
We also fix intermediary files folder for Portable and Setup projects
2024-11-16 01:05:15 +01:00
Mounir IDRASSI cb97351250 Windows: Remove support for 32-bit driver code. Set build target as Windows 10. Simplify code and fix all warnings in driver. 2024-11-13 02:08:51 +01:00
Mounir IDRASSI 455a4f2176 Avoid conflict with C++17 features std::byte by using uint8 type instead of byte 2024-06-12 12:30:04 +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 fb1a4893b8 Windows: Fix some VS static analyzed warnings 2021-08-30 00:26:57 +02:00
Mounir IDRASSI 4b98ff0e98 Windows: Better implementation of PRF autodetection optimization. 2021-08-07 20:47:07 +02:00
Mounir IDRASSI aeba32ba8b Windows Driver: fix BSOD during mounting caused by commit for PRF auto-detection speedup 2021-08-07 20:47:00 +02:00
Mounir IDRASSI 6986dce63e Windows: clear DeriveKeyWork work item only if they have correct type 2021-08-02 00:57:25 +02:00
Mounir IDRASSI 2e32adf625 Windows: Avoid leaking sensitive values in work item of threads pool 2021-07-15 00:21:17 +02:00
Mounir IDRASSI fdf7888ab3 Windows: Reduce time of mount with PRF auto-detection 2021-07-14 23:59:42 +02:00
Mounir IDRASSI 3f587a3629 Windows: Don't use API for Processor Groups support if there is only 1 CPU group in the system. This can fix slowness issue observed on some PCs with AMD CPUs. 2020-07-02 02:20:42 +02:00
Mounir IDRASSI 94d3a1919c Windows: Implement support for processor groups in the driver and fix build issues caused by previous implementation 2020-02-10 02:23:25 +01:00
techvintageandGitHub 123b187af5 Adding Processor Groups support for more than 64 processors (#581)
*  Adding Processor Groups support for more than 64 processors

* Revert " Adding Processor Groups support for more than 64 processors"

This reverts commit e1d5fe0a55.

* Adding Processor Groups support for >64 logical processors
2020-01-29 11:10:00 +01:00
Mounir IDRASSI 321715202a Windows: Generalize RAM encryption for keys to VeraCrypt binaries, especially Format and Expander 2019-03-02 10:23:39 +01:00
Mounir IDRASSI cf48b532b4 Windows: Implement RAM encryption for keys on 64-bit machines using ChaCha12 cipher and t1ha non-cryptographic fast hash (https://github.com/leo-yuriev/t1ha) 2019-03-01 00:35:13 +01:00
Mounir IDRASSI 0ebc26e125 Update IDRIX copyright year 2017-06-23 22:15:59 +02:00
Mounir IDRASSI e90e24b30b Windows: Add support for Streebog (hash) and kuznyechik (encryption) 2016-08-15 01:09:11 +02:00
David Foerster 5f47d8b6f1 Fix space before tab 2016-05-10 22:24:06 +02:00
David Foerster 11716ed2da Remove trailing whitespace 2016-05-10 22:18:34 +02:00
David Foerster fc37cc4a02 Normalize all line terminators 2016-05-10 20:20:14 +02: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 3f2e20e339 Simplify code handling iterations count: in boot mode, we'll set the correct iterations count inside derive_u_sha256 and derive_u_ripemd160 depending in the value of the iterations parameter. On normal mode, we use normal values of iterations count. Removes the special test parameter from RIPEMD160 functions. 2014-11-08 23:24:25 +01:00
Mounir IDRASSI 68f16dae24 Implement support for creating and booting encrypted partition using SHA-256. Support SHA-256 for normal volumes as well. 2014-11-08 23:23:53 +01:00
Mounir IDRASSI 75f7808719 Remove deprecated/legacy cryptographic algorithms and encryption modes that are never used by VeraCrypt. This will speed up volumes opening in many cases. 2014-11-08 23:21:32 +01:00
Mounir IDRASSI 6b2e97c243 Enhance security by rising the iterations used in PBKDF2 : 327670 instead of 1000 when booting in encrypted system partition, and 2000000 instead of 2000 when using encrypted containers and partitions 2014-11-08 23:18:21 +01:00
Mounir IDRASSI c606f0866c Add original TrueCrypt 7.1a sources 2014-11-08 23:18:07 +01:00