Commit Graph

518 Commits

Author SHA1 Message Date
David Fort
a4bd5ba886 core, channels: client-side remote credential guard
This patch implements the client-side part of the remote credential guard feature
as described in MS-RDPEAR. The 2 main changes are: shipping the TSRemoteGuardaCreds in
NLA, and implement the rdpear channel that allows LSASS to remote all the calls to
our client. For now it's UNIX only as the windows implementation would be implemented
in a completely different way.
To test, you may establish you ccache and then connect with (RCG enabled on the server):
	xfreerdp /remoteGuard /u:<user> /d:<domain> /v<server>

That should log you in, and in the session you should not be asked for credentials when
doing mstsc /remoteGuard /v:<other server>.
2024-09-11 17:15:11 +02:00
akallabeth
9d10923524
Merge pull request #10580 from akallabeth/more-warn-fixes
More warn fixes
2024-09-10 17:07:12 +02:00
akallabeth
529ce7534b
[cmake,compiler] disable -Wswitch-enum warning
the warning is quite useless as we do not always list all enumerations
in a switch.
2024-09-10 14:42:44 +02:00
akallabeth
801c825e2b
update-doxyfile 2024-09-10 08:31:19 +02:00
akallabeth
52ee2e4668
[cmake] unify ffmpeg and swscale detection 2024-09-09 12:20:17 +02:00
akallabeth
073426d4c1
[cmake,ffmpeg] update CMake detection script 2024-09-09 08:52:11 +02:00
akallabeth
af813a0929
[cmake,clang-tidy] do not use explicit .clang-tidy
if not explicitly added the nearest .clang-tidy file to the compiled
source is used.
2024-08-29 11:18:36 +02:00
akallabeth
3b8dc5c183
[cmake] move WITH_VERBOSE_WINPR_ASSERT
Since the definition is common to FreeRDP and WinPR move it to
CommonConfigOptions
2024-08-29 08:44:39 +02:00
Armin Novak
d71af44bb1
[warnings] disable warnings for generated code
* Disable clang-tidy in test build directories
* Disable compiler warnings for test binary directories.

These contain generated code we can not change, so the warnings are just noise
2024-08-28 09:18:30 +02:00
akallabeth
56d660f258
[cmake] mark dependency includes SYSTEM
Mark all dependency include paths SYSTEM so warnings from system headers
are excluded from ci warning statistics
2024-08-26 11:10:49 +02:00
Armin Novak
44b07721ec
[client,X11] fix ActionScript
* Unify script calls
* Update documentation
* Fix home directory
2024-07-25 09:42:03 +02:00
akallabeth
b1355471c5
[cmake,intrinsics] fix NEON detection
* detect 32bit ARM architectures
* do not set -mfpu=neon for 64 bit architectures
2024-07-05 09:45:34 +02:00
Armin Novak
3c41de6382
[cmake] move intrinsic support to file
Create DetectIntrinsicSupport.cmake to unify intrinsic detection and use
2024-07-04 13:25:40 +02:00
akallabeth
26e570e9fe
[cmake] unify clang detection
* Move Clang detection to own CMake file
* Check for Clang and AppleClang
* Use CMAKE_COMPILER_IS_CLANG to check for Clang in code
2024-06-25 09:09:50 +02:00
akallabeth
3abd141451
[cmake] fix JSON detection 2024-06-19 14:28:34 +02:00
oleg0421
0af0f31e27 RDPECAM client: cmake FindV4L script 2024-06-10 14:48:31 +02:00
akallabeth
04e3fe0b06
[client,sdl] update manpages
* Respect default configuration directory depending on
  WITH_FULL_CONFIG_PATH
* Unify manpage files for SDL2 and SDL3
2024-06-06 11:42:09 +02:00
akallabeth
7aa72a7507
[core,settings] unify configuration paths
* Add new function freerdp_settings_get_config_path to get current
  user configuration directory
* Add CMake option WITH_FULL_CONFIG_PATH (default OFF): If defined, use
  <appdata>/Vendor/Product as config directory, otherwise use
  <appdata>/vendor (lowercase, only if vendor equal to product)
2024-06-06 11:31:22 +02:00
Armin Novak
e9296e1179
[client,sdl] fix architecture paths for WebView2 2024-06-05 14:54:27 +02:00
Armin Novak
cedc631b3e
[client,SDL] add windows WebView2 link
Add a CMake script to download and link WebView2 for SDL client
2024-06-05 13:52:10 +02:00
akallabeth
35859c81a1
[client,sdl] allow side by side and replacement
Allow SDL2 and SDL3 client to be installed side by side as well as an
option to only install one and name it accordingly
2024-05-16 18:27:44 +02:00
akallabeth
ac69cf346e
[cmake] add missing include
include(CMakeDependentOption) before use.
2024-05-16 16:51:55 +02:00
akallabeth
4b3ecfac47
[winpr,utils] fix cJSON detection
* pkg-config sets CJSON_FOUND, check for that instead of the paths, which
  might be unset or set to <var>-NOTFOUND
* move detection to own file. find_package targets are meant to be used
  in same directory or below, but we define the WinPR target one above,
  so include it in parent
2024-05-16 13:27:22 +02:00
Ondrej Holy
15c78a27f2
[cmake] really use pkg_check_modules results for json-c
Although, the `pkg_check_modules` function is used when finding the
json-c library, the results are never used. Let's add the `HINTS` params
for the `find_path` and `find_library` functions.
2024-05-16 11:56:08 +02:00
Ondrej Holy
29bb435ecc
[cmake] add JSON library find modules
* Add module for cJSON
* Add module for json-c
2024-05-14 20:45:07 +02:00
Ondrej Holy
5f07ffda94
[cmake] fix typo in comment 2024-05-14 18:11:33 +02:00
مهدي شينون (Mehdi Chinoune)
d219ed7179 Don't setup MSVC Runtime on MinGW 2024-05-04 11:33:30 +02:00
Ondrej Holy
5a28b046d5 [winpr,ncrypt] bundle pkcs11.h and drop pkcs11-helper dependency
The ncrypt implementation currently relies on the pkcs11-helper library.
That is not available on RHEL for example. Let's bundle the standardized
header file from https://github.com/latchset/pkcs11-headers to avoid the
need for extra dependency.

Related: https://github.com/FreeRDP/FreeRDP/discussions/9982
2024-04-22 17:42:52 +02:00
akallabeth
5583fec47b [cmake] move epoll detection to platform 2024-04-19 07:31:29 +02:00
akallabeth
f3b2aea781 [cmake] add fuzzer tests
tests imported from https://github.com/ergnoorr/fuzzrdp

reported by Evgeny Legerov of Kaspersky Lab.
2024-04-16 13:06:22 +02:00
akallabeth
0a0df77c39 [build,ipp] drop support for IPP
Intel Performance Primitives do not have a test setup in FreeRDP and
most likely no longer compile.
2024-04-16 12:44:38 +02:00
Armin Novak
330fe90b21 [cmake] Fix warning in FindOSS.cmake 2024-04-05 13:06:57 +02:00
akallabeth
00cd1c7130 [cmake] do not set NO_SONAME
if set the linker might insert full paths to dependencies
2024-04-04 21:51:09 +02:00
akallabeth
678ff144ab [cmake] unify windows resource file generation
* use a macro to add resource files for executables and shared libraries
* use that macro to declare targets
* use that macro to set library/binary versioning
* use that macro to set target output name
* use a macro to create manpages and names
2024-03-20 11:17:18 +01:00
akallabeth
903172737a [cmake] readd BSD related default include paths 2024-03-20 09:11:08 +01:00
akallabeth
09ff2966af [cmake] unify BSD related configuration in PlatformDefaults.cmake 2024-03-20 09:11:08 +01:00
akallabeth
faf0c74029 [cmake] add posix requirements 2024-03-20 09:11:08 +01:00
akallabeth
92ed8b3916 [winpr,timezone] outside definition timezone file
allow defining the filepath of timezone file in buildsystem adjusting it
without a required code change.
2024-03-20 09:11:08 +01:00
akallabeth
f4b7c59915 [cmake] move platform defines to common include
* Move platform specific settings to a common CMake include
2024-03-20 09:11:08 +01:00
akallabeth
15cf6b26b1 [channesl,oss] fix OSS detection
* generate a include header depending on where the soundcard.h file was
  found as that is in system paths that must not be added to the include
  search paths.
* fix detection, the if/else was mixed up and completely broken.
2024-03-20 09:11:08 +01:00
akallabeth
44c86c8049 [cmake] fix RPATH configuration
* ConfigureRPATH must use option or cache variables (visibility scope)
* include CommonConfigOptions (and with it ConfigureRPATH) only after
  all required variables have been defined
2024-03-12 08:53:51 +01:00
Armin Novak
62f974a5c2 [client,sdl] add shortcut config file
Allow keyboard shortcuts to be configured via config file.
2024-02-22 12:24:51 +01:00
akallabeth
e2e6d09256 [cmake] use DEFAULT_DEBUG_OPTION for all 2024-02-13 17:06:00 +01:00
akallabeth
b193f9ab59 [cmake] guard cmake_policy(CMP0091)
only set the policy to NEW if it is defined
2024-02-13 16:22:37 +01:00
akallabeth
f22d3065cb [cmake] fix manpage generation dependencies 2024-01-29 09:34:59 +01:00
akallabeth
ebebc5b2a7 [cmake] set policy CMP0138 NEW
with CMake >= 3.24 use the parent project compiler settings for
check_ipo_supported as it might fail otherwise.
2024-01-29 08:46:29 +01:00
Armin Novak
f61d1fd66a [cmake] fix clang-format detection 2024-01-25 10:36:52 +01:00
akallabeth
fc47a019df [clang] unify tool detection 2024-01-25 09:40:10 +01:00
akallabeth
98daeb812e [cmake] add clang-format versions
add new versions of clang-format to detection script
2024-01-25 09:40:10 +01:00
akallabeth
15d9e5e01a [cmake] add clang-tidy support 2024-01-25 09:40:10 +01:00