Commit Graph

89412 Commits

Author SHA1 Message Date
Hater
340f6cfec4 [BCRYPT][BCRYPT_WINETEST] Sync to WineStaging-10.6 (#8267)
Sync bcrypt/bcrypt winetest with latest wine. Implement all functionality with mbedtls. DSA is my implementation based on libtomcrypt implementation as mbedtls does not support DSA. All failing tests are wine_todo

* [BCRYPT] Split implementations in different files. Add internal header. Add precompiled header. These changes are needed to make bcrypt more wine compatible

* [BCRYPT] Update to latest bcrypt from wine. Add their gnutls implementation with small changes. Add missing function in the other implementations returning STATUS_NOT_IMPLEMENTED. WARNING! gnutls is modified just visually and is n ot compiled locally as we don't have gnutls in ReactOS for a long time and we depend on mbedtls implementation.

* [BCRYPT] Remove forgotten code. Remove hmac BOOL and use hash->flags for hmac

* [BCRYPT] Remove some dead code. Move flag defines in header. Use constant for flag

* [BCRYPT][WINETEST] Update bcrypt wine test to current version. On windows it executes 23114 tests successfully

* [MBEDTLS] Activate MD2 and MD4 hashing algorithms

* [MBEDTLS] Export additional MD functions

* [BCRYPT][WINETEST] Disable not implemented method tests

* [BCRYPT] Remove unneeded headers

* [BCRYPT] Fix some struct variables and add a hash method

* [BCRYPT] Update common crypto implementation

* [MBEDTLS] Expose AES CFB8

* [MBEDTLS] Export simetric encryption/decryption functions

* [BCRYPT] Implement symetric encryption/decryption

* [BCRYPT][WINETEST] Activate symetric encryption/decryption tests. From 22541 Only 3 fail on wine_todo

* [BCRYPT][WINETEST] Disable pbkdf tests. They crash calling function with ULONGLONG parameter

* [MBEDTLS] Export additional functions

* [BCRYPT] Expand private data size

* [BCRYPT] Implement asymetric encryption/decryption. NOTE: DSA is NOT supported by mbedtls, so it is not implemented here

* [MBEDTLS] Disable range check for mbedtls_dhm_calc_secret for ReactOS. It fails tests for key derivation

* [BCRYPT][WINETEST] Enable all tests

* [BCRYPT] Update exports

* [MBEDTLS] Add DSA implementation. It is my implementation based on libtomcrypt and adapted to mbedtls. It is NOT part of mbedtls!

* [BCRYPT] Implement DSA encryption/decryption. Use union for cipher/pk/dh/dsa keys to lower memory used for a key. Lower PRIVATE_DATA_SIZE accordingly.

* [BCRYPT] Fix missed cleanup on error paths. Fixed missed DSA key reinitialization. Change some error codes to STATUS_NO_MEMORY. Minor formatting

* [WINESYNC] Update bcrypt sync status

* [MBEDTLS] Fix double export and move an export for readability

* [BCRYPT] Enable ARC4 (RC4) algorithm

* [BCRYPT] Extend private data size to fit x64

* [WINESYNC] Update WINESYNC.txt to exclude commit hash

---------

Co-authored-by: Justin Miller <justin.miller@reactos.org>
2026-08-30 01:29:51 +00:00
Justin Miller
599870dd12 [WININET][WINHTTP] Import crypt32 outright, not delayed (#9464)
workaround for https://jira.reactos.org/browse/CORE-6504
2026-08-29 23:14:15 +00:00
Carl J. Bialorucki
e055568a90 [README] Update ReactOS release button 2026-08-29 07:06:57 -05:00
Justin Miller
b272427baa [APITESTS][NTOS:PS][SDK][NTUSER] Job UI Restriction support (#9448)
Adds the initial attempt at handling the job ui restriction support. This doesn't protect the OS yet, however it provides everything we need to start implementing that protection.
2026-08-29 04:46:45 +00:00
Mikhail Tyukin
b0845da65b [SETUPAPI] Fix SetupDiDeleteDeviceInfo (#9436)
SetupDiDeleteDeviceInfo always returned FALSE as it used the SP_DEVINFO_DATA structure internally rather than accessing the DeviceInfo structure. Needed for latest XP Nvidia installer.

CORE-20472
2026-08-28 20:22:34 -04:00
Mohammad Amin Mollazadeh
62de6b33a2 [MCIAVI32] Sync with Wine 11.11 2026-08-28 17:13:20 -04:00
Mohammad Amin Mollazadeh
7e8b6a400b [SDK][LIBWINE] Import debugstr_fourcc 2026-08-28 17:13:20 -04:00
George Bișoc
f3f82e4fce [NTOS:SE] Notify every interested filesystem of an upcoming logon session termination
ROS has SeRegisterLogonSessionTerminatedRoutine and SeMarkLogonSessionForTerminationNotification that filesystems can use to get notified of a logon session of interest that is about to be terminated as its last refcount is dereferenced.
Though they're both useless because ROS lacks the necessary implementation for this kind of stuff, consequently whoever (and by that I mean FSDs) registered their callback to await for the logon session termination notification, they never get notified like at all.

This patch implements the final bits of this mechanism. Also clarify some comments in the documentation.
2026-08-28 20:49:05 +02:00
Mikhail Tyukin
0e986f0995 [WINESYNC] Update file
Also remove browseui as it is completely different from wine's
2026-08-28 11:35:37 -04:00
Mikhail Tyukin
43a6de894e [COMPSTUI] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
c3ddf8f97c [COMCAT] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
1692136b05 [CLUSAPI] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
4681b3e473 [CABINET] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
1d6f353c11 [AVIFIL32] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
30266a7189 [ATL][ATL80][ATL100] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
f7921e128d [ADVPACK] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
1620743e62 [ACTXPRXY] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Hermès Bélusca-Maïto
f69f04bc67 [USERINIT] Rewrite and fix GetLayoutName() (#9431)
- Allow specifying the length of the output `pszName` buffer.

- Reduce the number of character buffers required.

- Simplify parsing the "Layout Display Name" value, of the form:
  "@file_path,-resID" . Positive resource ID isn't handled.

- Use `LoadLibraryExW(..., LOAD_LIBRARY_AS_DATAFILE)` for loading
  the specified DLL for retrieving its resources.

- Don't leak the loaded DLL when the `LoadStringW()` call succeeds.

- Don't leak the opened registry key when the "Layout Text" value
  retrieval fails.
2026-08-28 15:02:18 +02:00
Hermès Bélusca-Maïto
badbcd2844 [USERINIT] Improve default keyboard layout fallback when changing the language (#9431)
In `SelectKeyboardForLanguage()`, fall back to "English (United States)"
keyboard layout if no other suitable layout is found.
2026-08-28 15:02:16 +02:00
Hermès Bélusca-Maïto
c45c83a4dc [USERINIT] Fix the current KLID matching in CreateKeyboardLayoutList() (#9431)
Use case-insensitive matching for comparing the current KLID with
the enumerated ones.

For example on my machine, `GetKeyboardLayoutNameW()` would return
"0000040C" (French AZERTY layout) in capital hex number, while the
registry `HKLM\System\CurrentControlSet\Control\Keyboard Layouts`
subkeys specify the layouts in lowercase hex, which is of course
perfectly valid: the French AZERTY layout would be "0000040c".

Without the fix, there wouldn't be any matching, and as a result,
the correct keyboard layout wouldn't be selected.
2026-08-28 15:02:14 +02:00
Hermès Bélusca-Maïto
82d0c38495 [USERINIT] Minor refactor for keyboard-layout-related functions (#9431)
- `WCHAR szLayoutId[9]` --> `WCHAR szKLID[KL_NAMELENGTH]`

- Don't use the `LCID` type for unrelated things: namely,
  keyboard layout IDs.

- Simplify `CreateKeyboardLayoutList()` a little.
2026-08-28 15:02:06 +02:00
Hermès Bélusca-Maïto
d482579dff [SYSSETUP] Fix retrieval of the currently active keyboard layout ID and its name (#9420)
Addendum to commit 6d09885ce4 (PR #4035)

Retrieving the active keyboard layout ID and its name may be considered
as an art in Win32 programming by itself, whenever one is not using the
`GetKeyboardLayoutName()` routine (which only works for the current
thread).

In `SetKeyboardLayoutName()`, after retrieving a candidate KLID (whose
mapping from a HKL isn't trivial and may not always be obtained in a
reliable manner), one needs to check whether this isn't a substituted
layout ID. If so, one needs to retrieve the target ID. Only then it is
safe to look it up into the list of registered Keyboard Layouts (in the
registry), in order to retrieve the corresponding layout name.

In case an error happens and we only get a numerical KLID, just display
this value as the layout name.

----

The original code had problems in the following scenario:
install ReactOS in English (Australia) locale, i.e. LANGID == 0x0C09,
then associate a U.S. keyboard layout (== 0x0409), or something more
exotic like, U.S. Dvorak (right or left handed == 0x00030409 or 0x00040409),
or Arabic (102) AZERTY (== 0x00020401), etc.:

- In any of these cases, the original code would fail because it would
  consider a keyboard layout ID == 0x0C09, which doesn't exist at all.

- Using the HKL in the case of Arabic (102) AZERTY to map into a KLID
  wouldn't be reliable, because the HKL would be set to: 0x04010C09,
  extracting the layout ID is: 0x0401, and a layout substitution may or
  may not exist for 0x0401.
  Instead, using the Keyboard Layout\Preloads registry key, value "1"
  would work, because it would contain an ID that maps (possibly after
  substitution) to the correct KLID 0x00020401 for the layout.

Reported-by: Pierce Andjelkovic <pierceandjelkovic@gmail.com>
2026-08-28 14:48:30 +02:00
Adam Słaboń
ae9644382c [URLMON] Workaround build problem on some Unix hosts (#8031)
Add a hack for CMake not being able to properly escape command line
GUID definition on some Unix hosts.

CORE-13277

6b3406e630 causes such build errors
when building ReactOS with RosBE on my Linux system:

```
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
<command-line>: error: "PROXY_CLSID_IS" redefined [-Werror]
<command-line>: note: this is the location of the previous definition
cc1: error: unrecognized command line option '-Wno-unknown-warning-option' [-Werror]
cc1: all warnings being treated as errors
[5/29] Building C object dll/win32/urlmon/CMakeFiles/urlmon.dir/proxy.dlldata.c.obj
FAILED: dll/win32/urlmon/CMakeFiles/urlmon.dir/proxy.dlldata.c.obj 
```
2026-08-28 12:50:42 +03:00
Justin Miller
9eb3bdef4c [WIN32SS:NTUSER] Open the startup desktop with MAXIMUM_ALLOWED (#9443)
Fixes the chrome sandbox process insta-crash so it actually gets to the job work and fails under the ui restriction
2026-08-26 10:46:13 -07:00
Hermès Bélusca-Maïto
5653298fed [SYSSETUP] Remove the WS_GROUP from the task icons in the Process page 2026-08-26 18:51:19 +02:00
Hermès Bélusca-Maïto
a0714f49a6 [SYSSETUP] syssetup.rc: Include the resource-only .rh headers 2026-08-26 18:51:18 +02:00
Hermès Bélusca-Maïto
d55a77c350 [SYSSETUP] Always reboot in case of errors, or when installation terminates
- `InstallReactOS()`: Always reboot at the end of installation, and even
  if errors happened, and don't consider as fatal errors any failure to
  acquire the shutdown privilege.

- `InstallLiveCD()`: Reboot in case an error happened.
2026-08-26 17:59:59 +02:00
Hermès Bélusca-Maïto
dbb3ef17cd [SETUPAPI] pSetupEnablePrivilege(): Fix the desired access mask when opening the process' token
Addendum to commit 0b3a854203 (r29160).

The (now-removed) `TOKEN_QUERY` flag was a bug introduced in commit
949f9a7ff6 (r13370), probably as a copy-pasta error from other similar
lines also introduced in that commit; and this bug still also exists to
this day in wine-11.16.
2026-08-26 17:59:49 +02:00
Whindmar Saksit
e7cf965e87 [SHDOCVW] SHLimitInputEdit in Explorer tree rename edit (#9438)
CORE-20735
2026-08-26 15:45:44 +02:00
Whindmar Saksit
268f687a79 [W32TIME] Support DllServer re-registration and unregistration (#9442)
CORE-20747
2026-08-26 00:33:22 +02:00
Eric Kohl
5483dc09a9 [UI] CTreeView: Add support for custom styles in the Create method 2026-08-24 19:52:07 +02:00
Whindmar Saksit
763ce84cf5 [SHELL32] Implement bat/cmd drop target menu (#9435)
CORE-20745
2026-08-24 17:37:37 +02:00
Jose Carlos Jesus
606b2e9620 [SYSSETUP] Update Portuguese (pt-PT) translation (#9433) 2026-08-23 23:15:54 +02:00
Alex Mendoza
3be76cb772 [SETUPAPI_APITEST] Add a test for SetupDiGetActualModelsSection (#9426)
CORE-20472
2026-08-23 17:53:40 +02:00
Alex Mendoza
e3188c27ad [SETUPAPI] Implement SetupDiGetActualModelsSectionA/W (#9426)
CORE-20472

For example, the installer for the NVIDIA GTX 960 driver 368.81,
requires this routine.
2026-08-23 17:53:39 +02:00
Mikhail Tyukin
fdddc528e2 [RTWORKQ] Import from wine-10.0 (#9398)
Import rtworkq.dll from Wine-10.0, required for importing wine's MediaFoundation implementation. Locked behind Windows 8.1 as apps detect for the presence of this DLL.
2026-08-22 19:32:37 -04:00
Gleb Surikov
5556344437 [NTOS:PS] Basic support for jobs in the kernel: Create/Open/Assign/Remove/Terminate/Delete (#7500)
Introduces basic job support into the kernel
supersedes the old WIP PR #40 by Mark Jansen and is partially based on it

Co-authored-by: Mark Jansen <mark.jansen@reactos.org>
Co-authored-by: Samuel Serapión Vega <encoded@reactos.org>
Co-authored-by: Timo Kreuzer <timo.kreuzer@reactos.org>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-08-22 15:42:48 -07:00
Justin Miller
4cee655099 [PCIIDEX] Enable AHCI/SATA flags while keeping existing ones (#9430)
Do not erase existing controller flags in AhciGetControllerProperties().

CORE-17256
2026-08-22 20:40:26 +03:00
Vitaly Orekhov
d19eda648c [AUDIOSRV] Broadcast winmm_devicechange to all desktops and applications (#9264)
This is an undocumented WinMM specific message that tells whether the
`KSCATEGORY_AUDIO` devices were installed or removed. wParam and lParam
are not used by this message.

It's needed for #8577 to get notification on default audio output device change.

CORE-12323
2026-08-22 19:42:20 +03:00
Stanislav Motylkov
d8b87733dc [SHELL32] Update Italian (it-IT) translation
Make "New Folder" button text shorter to fit properly,
as suggested by Simone Mario Lombardo.
2026-08-22 17:16:04 +03:00
Stanislav Motylkov
d772bfa32a [SYSDM] Fix general System Properties layout/translations
- Fix Ukrainian (uk-UA) "Computer:" label Y-coord
- Fix Portuguese (pt-PT) excess spacing (sync with en-US)
2026-08-22 17:12:15 +03:00
Stanislav Motylkov
390f2748f2 [SDK:ARBITER] Fix line endings. Addendum to a6524ef738 (#9400) 2026-08-22 16:22:09 +03:00
Justin Miller
a6524ef738 [SDK:ARBITER] Add the Range logic into arbiter (#9400)
[ARBITER] Add the Range logic into arbiter
the inner loop of resource assigment 
And Support CmResourceShareDriverExclusive
2026-08-21 16:33:09 -07:00
George Bișoc
0dafdc52f5 [NTOS:SE] Adapt the logon session database into a hash table
Right now nt!SepLogonSessions in ROS is a mere pointer list of _SEP_LOGON_SESSION_REFERENCES structures. !logonsession command of WinDBG expects it to be a hash table, composed as an array of lists though.
Consequently this command doesn't work if you debug ROS, it simply causes the debugger to spam the logger with garbage into an infinite loop.

So in order to fix this, we gotta make this database construct behave as what WinDBG would strictly expect.
CORE-20344
2026-08-20 23:13:53 +02:00
Hermès Bélusca-Maïto
c7e1c79921 [FREELDR:PC] pcvideo.c!PcVideoGetBiosMode(): WidthInChars isn't optional
Addendum to commit bd881161ac, noticed by Serge Gautherie.
2026-08-19 22:55:52 +02:00
Hermès Bélusca-Maïto
851f1444a2 [SYSSETUP] Fix some elements of the IDD_LOCALEPAGE dialog
Addendum to commit 6d09885ce4 (PR #4035)

- The `IDC_LOCALETEXT` and `IDC_LAYOUTTEXT` controls don't need to hold
  a template string, since it gets unconditionally replaced at runtime.

- Add missing `IDS_LOCALETEXT` and `IDS_LAYOUTTEXT` strings (to be translated!)
  in Basque translation file.

- Add the missing horizontal separator in some translations.

- Homogenize the height and length of some elements across translations.
2026-08-19 19:58:06 +02:00
Ratin Gao
ef8bcd3fbe [EVENTLOG][FMIFS][KERNEL32][APITESTS] Fix leaks after calling RtlDosPathNameToNtPathName_U (#8559)
Misc. changes:
- [FMIFS] Fix source file encoding to UTF-8
- [KERNEL32] Fix SAL annotation for BasepMapFile
- [NTUSER] Fix a debug print incorrectly mentioning RtlDosPathNameToNtPathName_U

This fix is similar to the previous in 657f728767 (#5592).
2026-08-19 20:00:46 +03:00
Mark Jansen
5930e028e9 [RAPPS] Remove readonly flag from the downloaded database file
CORE-20743
2026-08-19 14:32:42 +02:00
Mohammad Amin Mollazadeh
ad7473e309 [DEVMGR] Fix use-after-free in the UI code (#9416)
The CDeviceView::RefreshDeviceList destroys the m_RootNode
object and replaces it with a new one while TreeView still
holds a reference to the now-destroyed old one. This makes
event-handlers to be called using the old pointer, which
in turn makes Node in CDeviceView::BuildActionMenuForNode
return an invalid value for CNode::GetNodeType() that hides
the "Add Hardware" option from context menu.

Instead of adding the TreeView root node and then calling RefreshDeviceList,
we can change the order so the root node is always added to the TreeView
after RefreshDeviceList recreated the m_RootNode.

CORE-19770
2026-08-19 14:50:33 +03:00
Max Korostil
e7e1465812 [NTUSER] Fix NtUserSBGetParms (#9411)
- Fix BSOD
- Match function behavior similar to Windows

CORE-18128
2026-08-19 12:52:47 +03:00