Commit Graph

2469 Commits

Author SHA1 Message Date
Mounir IDRASSI
9490336357
Windows: Update signed Windows drivers. 2024-11-20 01:11:15 +01:00
Mounir IDRASSI
b85a2df224
Windows driver: use correct WDM type. Increment version to 1.26.17 2024-11-20 00:21:30 +01:00
Mounir IDRASSI
f9b9a9ca9f
Increment version to 1.26.16. Update Release Notes. Update signed Windows drivers. 2024-11-18 00:04:26 +01:00
Mounir IDRASSI
93868acfdd
Windows Driver: Use system functions directly instead of dynamic loading since we are targeting Windows 10 2024-11-17 21:37:16 +01:00
Mounir IDRASSI
42fdbcf3ce
Windows Driver: Fix deadlock in EncryptedIoQueue due to re-entrant IRP completions
There was a deadlock issue in the driver caused by the CompletionThreadProc function in EncryptedIoQueue.c:
https://sourceforge.net/p/veracrypt/discussion/general/thread/f6e7f623d0/?page=20&limit=25#8362

The driver uses a single thread (CompletionThreadProc) to process IRP completions. When IoCompleteRequest is called within this thread, it can result in new IRPs being generated (e.g., for pagefile operations) that are intercepted by the driver and queued back into the CompletionThreadQueue. Since CompletionThreadProc is the only thread processing this queue and is waiting on IoCompleteRequest, these new IRPs are not handled, leading to a system freeze.

To resolve this issue, the following changes have been made:

Deferred IRP Completion Using Pre-allocated Work Items:
  - Introduced a pool of pre-allocated work items (COMPLETE_IRP_WORK_ITEM) to handle IRP completions without causing additional resource allocations that could trigger new IRPs.
  - The CompletionThreadProc now queues IRP completions to these work items, which are processed in a different context using IoQueueWorkItem, preventing re-entrant IRPs from blocking the completion thread.

Thread-Safe Work Item Pool Management:
  - Implemented a thread-safe mechanism using a semaphore (WorkItemSemaphore), spin lock (WorkItemLock), and a free list (FreeWorkItemsList) to manage the pool of work items.
  - Threads acquire and release work items safely, and if all work items are busy, threads wait until one becomes available.

Reference Counting and Improved Stop Handling:
  - Added an ActiveWorkItems counter to track the number of active work items.
  - Modified EncryptedIoQueueStop to wait for all active work items to complete before proceeding with cleanup, ensuring a clean shutdown.

These changes address the deadlock issue by preventing CompletionThreadProc from being blocked by re-entrant IRPs generated during IoCompleteRequest. By deferring IRP completion to a different context using pre-allocated work items and managing resources properly, we avoid the deadlock and ensure that all IRPs are processed correctly.
2024-11-17 19:39:58 +01:00
Mounir IDRASSI
22c93dd64c
Linux/macOS: make binary symbols visible in crash report. 2024-11-17 16:32:44 +01:00
Mounir IDRASSI
b7f6270c0d
Windows Driver: Add Unicode define to build and enhance tracing in debug mode 2024-11-16 18:33:28 +01:00
Mounir IDRASSI
a588b20975
Windows: Fix driver crash caused by 32-bit leftover code in derive_key_blake2s function 2024-11-16 17:38:25 +01:00
Mounir IDRASSI
9c9870b103
Windows: Avoid modifying BootArguments structure and use __unaligned keyword to inform compiler that pointer is unaligned.
This avoids issues with existing bootloaders
2024-11-16 01:50:06 +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
489d3e3873
Windows: Fix output directory configuration of COMREG project 2024-11-16 00:56:59 +01:00
Mounir IDRASSI
a69cba98ec
Windows: Fix regression in self-test of hash algorithms that caused them to fail 2024-11-16 00:51:32 +01:00
Mounir IDRASSI
3a5fe63224
Windows: Fix VS 2022 projects references 2024-11-15 21:40:56 +01:00
Mounir IDRASSI
62e956942a
Windows: remove VS 2019 solution and project files since we migrated to VS 2022. 2024-11-15 18:36:19 +01:00
Mounir IDRASSI
fff9e7275a
Windows: Fix delayload link warning about comdlg32.dll not used. Remove unused old project files 2024-11-15 17:51:06 +01:00
Mounir IDRASSI
6d1ad12755
Windows: move main project files and solution from VS 2010 to VS 2022. Delete unused files. 2024-11-15 15:50:32 +01:00
Mounir IDRASSI
ad39040fdc
Windows: Fix warning when building Setup and Portable. No file elevation is used for them. 2024-11-15 15:47:28 +01:00
Mounir IDRASSI
214fbb5cbd
Windows: Upgrade VS 2019 solution/projects to VS 2022. Remove Win32 configuration for driver and binaries.
Only setup remains 32-bit to be compatible with both x64 and arm64 Windows.
2024-11-15 14:22:45 +01:00
Mounir IDRASSI
de9e472d10
Windows: Fix build of MBR bootloader 2024-11-15 11:16:19 +01:00
Mounir IDRASSI
21e61c8ded
Windows: Fix warning in driver build by make get_pkcs5_iteration_count have a single return statement at the end 2024-11-15 11:15:41 +01:00
Mounir IDRASSI
fc4a544180
Windows: Use VS builtin __fastfail intrinsic for fatal exception instead of affecting NULL pointer 2024-11-15 00:42:19 +01:00
Mounir IDRASSI
43ad4f93eb
Windows: Fix various compiler warnings 2024-11-15 00:41:07 +01:00
Mounir IDRASSI
117d8dd046
Windows: Fix MBR bootload compilation error following latest changes 2024-11-15 00:38:09 +01:00
Mounir IDRASSI
951c8d210b
Use portable alignment macro to be compatible with Linux/macOS 2024-11-13 09:36:06 +01:00
Mounir IDRASSI
75152f7dc0
Use adequate const qualifiers for pbkdf2 functions arguments 2024-11-13 09:28:32 +01:00
Mounir IDRASSI
c63b74bbfe
Linux: Fix build error following latest code cleanup 2024-11-13 09:16:49 +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
ec4b44c238
Windows: Use BCryptGenRandom instead of deprecated CryptGenRandom to generate secure random bytes 2024-11-13 02:04:13 +01:00
Mounir IDRASSI
a1ade61c59
Linux: Fix build error caused by changes for dynamic CPU SHA support detection 2024-11-11 00:04:46 +01:00
Mounir IDRASSI
262b745940
Linux: Fix detection of SHA CPU support on virtualized environment by trying SHA instruction 2024-11-10 23:36:57 +01:00
Mounir IDRASSI
73684e56d8
Linux: Fix build error following SHA intrinsic support changes 2024-11-10 21:42:24 +01:00
Mounir IDRASSI
04c747fb2d
Add support for SHA-256 x86 instrinsic for enhance performance of PBKDF2-HMAC-SHA256 2024-11-10 21:08:00 +01:00
Mounir IDRASSI
fcc0c82836
Translations: Fix missing lang id in Romanian translation 2024-11-09 11:35:16 +01:00
TigerxWood
71e4725755
Update Language.ro.xml (#1434) 2024-11-09 11:17:12 +01:00
Mounir IDRASSI
92ad97ef33
Linux: Improve directory opening logic by prioritizing xdg-open and adding fallback mechanisms (#1420)
- Use xdg-open as the primary method for opening directories, ensuring compatibility with most Linux environments.
- Implemented fallback logic to try other known file managers (e.g., nautilus, dolphin, caja, thunar) if xdg-open is unavailable or fails.

Based on proposal by @bugtracker2019
2024-09-24 03:55:33 +02:00
Mounir IDRASSI
ba8dd5137a
Linux: Add Fedora as supported distribution in CMakeLists.txt 2024-09-22 11:46:01 +02:00
Mounir IDRASSI
68e2e01745
Windows: Fix EFI configuration editor various issues
We always using Unicode functions to interact with UI. We convert UTF8 string to UTF16 and vis-versa.
Overwrite input string instead of using resize that caused old test to remain.
Fix case of readOnly by using correct message.
change position of OK/cancel button to match other dialogs.
Activate translation on this dialog.
2024-09-19 00:36:31 +02:00
Mounir IDRASSI
aaf42a84a7
Linux: fix assert by wxWidgets library included in Ubuntu. 2024-09-18 15:08:31 +02:00
Mounir IDRASSI
380850787e
Windows: Simplify error message related to IsEfiBoot since it always fail with ERROR_INVALID_FUNCTION
Proposed by @kriegste on https://github.com/veracrypt/VeraCrypt/issues/360
2024-09-17 18:25:52 +02:00
Mounir IDRASSI
866fc8f513
macOS: fix regression in build script that caused it to ignore fuset switch
fixed by Mattoje #1417
2024-09-17 17:57:14 +02:00
Mounir IDRASSI
5c485e80b6
macOS: restrict --allow-screencapture switch to macOS only since screen protection doesn't work on Linux
In the code we also enable it for TC_WINDOWS but actually we don't use wxWidgets for Windows build.
2024-09-17 00:12:28 +02:00
Deniz Türkoglu
e0a46f6b2b
Add Option to Enable/Disable Screen Capture (#1418)
Veracrypt currently appears in screenshots and screen captures,
which can unintentionally expose sensitive information, such as
the fact that Veracrypt is running or the location of your volumes.

Both Windows and macOS offer mechanisms to exclude specific windows
from being captured. While not foolproof, this is a useful preventative
measure. The method is a no-op for Linux/FreeBSD.

For more details on the wxWidgets API, see:
https://docs.wxwidgets.org/3.2/classwx_top_level_window.html#a337b9cec62b0cbd3b1b1545a83270f64
2024-09-17 00:05:21 +02:00
Mounir IDRASSI
eb0eec7b39
Windows: Fix failed EFI detection on some PCs where BootOrder variable is not defined.
we now report that EFI is not support only when GetFirmwareEnvironmentVariable fails with error ERROR_INVALID_FUNCTION.

Proposed by @kriegste on https://github.com/veracrypt/VeraCrypt/issues/360
2024-09-16 23:11:37 +02:00
Mounir IDRASSI
3a1c8bac59
macOS: enhance macOS build script(allow local build, specify wxWidgets version, control packaging)
Based on proposal by @Mattoje in https://github.com/veracrypt/VeraCrypt/issues/1417
2024-09-16 22:42:43 +02:00
Jonatan
35eeacad0a
Update Language.sv.xml (#1416)
* Update Language.sv.xml

* Update Language.sv.xml

* Update Language.sv.xml
2024-09-15 09:28:00 +02:00
Mounir IDRASSI
01dfd0e72b
Linux/macOS: Fix missing define that was causing compilation error 2024-09-10 23:32:42 +02:00
Mounir IDRASSI
40f0174408
Translations: Fix wrong escape sequences in Swedish translation (fixed by @an1 on Sourceforge) 2024-09-10 23:08:52 +02:00
Mounir IDRASSI
4a8f068ba5
Windows: Add support for x86 and x64 build for driver and binaries using Visual Studio 2019
We also enable Control Flow Guard and Spectre Mitigation
2024-09-08 17:14:31 +02:00
Mounir IDRASSI
66ce6998b6
Windows: use wcstok_s instead of wcstok for more secure parsing of directory path 2024-09-08 17:10:56 +02:00
Mounir IDRASSI
b2e55df00c
Documentation: Update CHM user guide 2024-09-02 21:16:47 +02:00