akallabeth
1f3f3682cc
[build] fix conversion warnings
2023-07-05 08:46:00 +02:00
akallabeth
c7f7f38367
[ci] deactivate proxy modules on windows
...
current builder is too old for c++11
2023-07-05 08:46:00 +02:00
Martin Fleisz
622a2a8df0
misc: More int to BOOL conversion fixes
...
This is a follow up to #9129 .
This PR fixes some problematic `int` to `BOOL` conversions that might
cause overflows when checking for bit flags.
2023-07-04 09:45:20 +02:00
akallabeth
b7ff113780
[winpr,crt] fix missing include
2023-06-29 18:34:51 +02:00
Armin Novak
40ecb1df25
[winpr,ini] documentation and parameter to size_t
...
* document the IniFile_* fucntions
* Use size_t for size parameters
2023-06-29 14:46:41 +02:00
Armin Novak
21ea8556ce
[winpr,ini] remove FILE* from struct
...
When reading files the FILE* is closed immediately, so this was just
confusing
2023-06-29 14:46:41 +02:00
Armin Novak
58087e544f
[winpr,ini] unify buffer allocation
2023-06-29 14:46:41 +02:00
Armin Novak
37e5e2223e
[winpr,ini] unify filename setting
2023-06-29 14:46:41 +02:00
Armin Novak
eb6230a563
[winpr,ini] assert arguments
2023-06-29 14:46:41 +02:00
Armin Novak
c717380020
[winpr,ini] unify reallocation of ini sections and keys
2023-06-29 14:46:41 +02:00
akallabeth
0d3b2dd3c3
[tests] fixed format strings
2023-06-29 14:30:09 +02:00
akallabeth
d0456914e5
[winpr,wlog] extend wLog to allow logging custom data
...
A logger allocated with WLog_Get now can have a customized context by
setting it with WLog_SetContext. Along with the newly introduced format
specifier %ctx an additional field is printed for the context.
2023-06-29 14:30:09 +02:00
Armin Novak
646a78d19c
[cmake] do proper pkcs11 detection
...
do not rely on find_feature but use a CMake option and find_package
2023-06-28 10:02:15 +02:00
akallabeth
3f78b3c379
[build] fix unused compiler warnings
2023-06-28 09:45:09 +02:00
akallabeth
3554dd1c64
[winpr,crypto] use void* for buffer arguments
2023-06-28 09:45:09 +02:00
akallabeth
0c15f72169
[winpr,collections] fixes for ListDictionary
...
* Make ListDictionary_Add and ListDictionary_SetItemValue arguments
const
* Allow ListDictionary_Add to store NULL values
2023-06-28 08:19:20 +02:00
Armin Novak
b8a0091c92
[winpr,utils] add IniFile_Clone
2023-06-27 17:36:57 +02:00
akallabeth
df3f274dd0
[test,listdictionary] fix format string
2023-06-27 15:05:43 +02:00
akallabeth
51ed074d1d
[winpr,collections] add doxygen for some types
...
* wLinkedList
* wObject
* wQueue
* wListDictionary
2023-06-27 15:05:43 +02:00
akallabeth
e1ae901858
[winpr,collections] fix ListDictionary_Add
...
create copies of key and value if the function pointer are set
2023-06-27 15:05:43 +02:00
akallabeth
54847499e9
[winpr,collections] fix ListDictionary New/Free handling
2023-06-27 15:05:43 +02:00
akallabeth
f27076ab82
[winpr,collections] ListDictionary
2023-06-27 15:05:43 +02:00
akallabeth
0669cfe483
[winpr,collections] CountdownEvent
2023-06-27 15:05:43 +02:00
akallabeth
1fd0e15810
[winpr,collections] remove unused ReferenceTable
2023-06-27 15:05:43 +02:00
akallabeth
8e319c4fa7
[winpr,collections] LinkedList_Count
2023-06-27 15:05:43 +02:00
akallabeth
63d4da2d0d
[winpr,collections] ListDictionary_GetKeys
2023-06-27 15:05:43 +02:00
akallabeth
ac39e8aac2
[winpr,collections] ListDictionary_Count
2023-06-27 15:05:43 +02:00
Hugues LEFEBVRE
b67afecf0f
CredSSP with early user auth (nla_ext) support
2023-06-26 11:53:46 +02:00
akallabeth
64486828bb
[winpr,crt] fix winpr_aligned_offset_recalloc
...
the copied data was taken from the wrong offset
2023-06-12 16:32:23 +02:00
akallabeth
a64dd36073
[build] fixed const warnings
2023-06-12 16:32:23 +02:00
Armin Novak
979610b1fd
[winpr,stream] assert valid pointer
2023-06-08 08:13:16 +02:00
Armin Novak
970f0c54e8
[stream] use const correct Stream_Pointer access
2023-06-08 08:09:33 +02:00
Armin Novak
2de7399e52
[winpr,stream] change Stream_Pointer return to void*
...
Eliminates possible type warnings as we return a void*
If a specific type is desired, use the Stream_PointerAs macro.
2023-06-08 08:09:33 +02:00
Armin Novak
81e95e51ca
[winpr,ncrypt] log problems during cert enumeration
2023-06-07 23:05:54 +02:00
Armin Novak
a4c6b36a19
[build] fix memory sanitizer stack frame warnings
2023-06-07 09:14:45 +02:00
akallabeth
734ae69756
[winpr] fix some msan warnings
...
initialize local stack variables
2023-06-07 09:14:45 +02:00
Armin Novak
ba98aa0a8c
[winpr] add atexit calls for WLog and SSL providers
...
C11 atexit cleanup handler are used to call cleanup routines for WLog
and SSL on program termination. This removes false positives when using
ASAN runtime memory debugger
2023-05-30 15:42:39 +02:00
akallabeth
4efc4e769e
[warnings] fix -Wunused-label
2023-05-24 08:24:32 +02:00
akallabeth
df76b59da7
[warnings] fix -Wshadow
2023-05-24 08:24:32 +02:00
akallabeth
ab677f8abe
[warnings] fix -Wempty-translation-unit
2023-05-24 08:24:32 +02:00
fifthdegree
449b96adb2
Use popup browser for AAD auth in SDL client
...
Optionally build the SDL client with Qt WebEngine to create a popup
browser for authentication to AAD. Also change the URL output on the
command line to use the "nativeclient" redirect for easier copy/pasting
of the authorization code.
2023-05-23 06:04:55 +02:00
fifthdegree
ba7fdcb5f0
Move alloc_sprintf into the winpr string api
2023-05-23 06:04:55 +02:00
Armin Novak
05669eff31
[winpr,pool] WINPR_ASSERT thread pool function arguments
2023-05-22 11:51:12 +02:00
Armin Novak
0c7330720f
[winpr,crypto] add internal rc4 replacement
...
RDP relies on RC4 for some operations, so we need these to successfully
log on to windows machines. This is a replacement for use with SSL
libraries that have already deprecated these.
2023-05-17 14:51:58 +02:00
Armin Novak
06bd759c64
[winpr,crypto] use a struct for RC4 context
2023-05-17 14:51:58 +02:00
akallabeth
2d248d1c96
[winpr,sspi] verbosly check NTLM context
2023-05-17 14:51:58 +02:00
akallabeth
93c5058aa5
[winpr,crypto] rc4 allocation check
...
* check success of winpr_RC4_New
* WINPR_ASSERT context when used
2023-05-17 14:51:58 +02:00
Armin Novak
10f8a7b4e4
[winpr,print] use void* as arguments for dump functions
...
to avoid casting or type mismatch warnings use void* as pointer to data
for dump functions
2023-05-17 14:19:31 +02:00
akallabeth
4a006322af
[winpr,clipboard] fix url unescape for file uri
2023-05-12 13:57:56 +02:00
akallabeth
d2cf953f24
[winpr,input] properly define keyboard types
...
* use an enum to define the different WINPR_KEYBOARD_TYPE*
* use the enum as argument for the functions instead of DWORD
2023-05-12 09:52:01 +02:00
David Fort
46171045ed
[winpr,input] fix GetKeycodeFromVirtualKeyCode(code, KEYCODE_TYPE_XKB)
...
As KEYCODE_TYPE_XKB is 3, in the previous code we were doing some "and masking"
and so when calling GetKeycodeFromVirtualKeyCode(code, KEYCODE_TYPE_XKB), the
function was always interpreting the virtual key code with the apple layout.
This patch fixes that and also mutualize the search in the code array.
2023-05-12 09:52:01 +02:00
akallabeth
564da71f11
[winpr,crypto] add digest sign functions
2023-05-10 09:59:10 +02:00
Alexandru Bagu
a231c09fff
fixes for llvm-mingw build
2023-05-04 12:56:16 +02:00
Martin Fleisz
3cb55a87e3
winpr: Add support for AVX2/AVX512F feature detection
2023-05-02 12:06:47 +02:00
akallabeth
05edcbc357
[cmake] fix version from git tag
...
only consider tags that conform to the format 'somestring1.2.3' as
valid tags
2023-05-02 09:34:07 +02:00
akallabeth
be74ce00a7
[winpr,tools] add openssl3 support
2023-04-28 08:33:06 +02:00
Armin Novak
f8ac8f1773
[winpr,schannel] add compile option WITH_DEBUG_SCHANNEL
2023-04-28 08:33:06 +02:00
Armin Novak
55a8695cfe
[winpr,crypto] add openssl 3 support
...
update hashing functions for openssl 3
2023-04-28 08:33:06 +02:00
akallabeth
516668d02b
[fclose] ensure no invalid pointers are passed.
...
fclose has undefined behaviour for NULL pointers, so check for these.
2023-04-28 07:39:35 +02:00
akallabeth
09aa4e63a9
[winpr,utils] fix COMMAND_LINE_VALUE_PRESENT
...
the flag was set unconditionally, only set it if there actually is a
value present
2023-04-28 07:39:35 +02:00
fifthdegree
6abd9165e6
Only accept hostname for kdc-url
...
For compatibility with windows
2023-04-27 16:31:30 +02:00
fifthdegree
9368317a9f
Plug some leaks in krb5glue_mit.c
2023-04-27 16:31:30 +02:00
fifthdegree
b1c4cb493f
Set KDC URL in a way compatible with Windows
2023-04-27 16:31:30 +02:00
fifthdegree
201b743f20
Set pkinit_kdc_hostname when known
...
Since Windows doesn't use id-pkinit-san in its certificates, it is
necessary to manually configure which hosts are valid KDCs. In the case
where a kdcUrl (or hostname) is provided to us, we can do that
configuration ourselves.
2023-04-27 16:31:30 +02:00
Armin Novak
e0aec72d71
[pkg-config] unify exec_prefix
2023-04-24 22:01:15 +02:00
Armin Novak
f674b209ff
[pkg-config] unify libdir
2023-04-24 22:01:15 +02:00
Bernhard Miklautz
d1069b3bc1
new: use prefix in pkg-config files for libdir
2023-04-24 11:19:01 +02:00
akallabeth
c0dc193a39
[winpr,input] use enum for keyboard types
...
* move type definition to WinPR as used there too.
* supported keyboard types are defined in
[MS-RDPBCGR] 2.2.1.3.2 Client Core Data (TS_UD_CS_CORE)]
use a enum instead of magic numbers to make code more readable.
2023-04-21 12:31:51 +02:00
akallabeth
1318b813d6
[winpr,input] fix apple keyboard mapping
...
GetVirtualKeyCodeFromKeycode and GetVirtualKeyCodeFromKeycode used
an invalid index offset. this commit corrects that, but is API breaking.
2023-04-21 12:31:51 +02:00
Pascal Nowack
bb967d1533
winpr/input: Add actual evdev keyboard handling
...
WinPR provides APIs to convert between keycodes between virtual
keycodes.
These keycodes can currently be evdev keycodes or Apple keycodes.
The evdev handling, however, handles XKB keycodes and not evdev ones.
The main difference between these is that XKB keycodes are shifted by
the value 8, compared to evdev keycodes.
In order to fix this situation, rename the evdev keycodes to XKB ones,
and introduce additionally a new keycode evdev, including its handling
for this keycode type.
2023-04-21 12:31:51 +02:00
Marc-André Moreau
32264b90cc
add WITH_UNICODE_BUILTIN option to use built-in UTF conversion functions
2023-04-18 16:51:08 -04:00
akallabeth
4c0b169774
[winpr,wtypes] fix BOOL definition for APPLE
...
* Add TargetConditionals.h include to ensure the symbols are defined
* Check for symbol existence and value != 0
2023-04-14 16:08:19 +02:00
Armin Novak
54bd41e99c
[winpr,collections] fix c++ warings for PubSub
2023-04-14 08:44:14 +02:00
Armin Novak
639ac20ed9
[winpr,stream] fix c++ warings for Stream_Write_UINT8
2023-04-14 08:44:14 +02:00
Armin Novak
8989386d01
[winpr,stream] fix c++ warings for Stream_Write_UINT64
2023-04-14 08:44:14 +02:00
Armin Novak
a13701f69c
[winpr,assert] eliminate c++ warnings
...
Eliminate cast warnings when used in C++ code
2023-04-14 08:44:14 +02:00
Armin Novak
4408521421
[winpr,sspi] match SEC_WINNT_AUTH_IDENTITY integer
...
windows defines them with ULONG which does not match UINT32, so keep
these types proper
2023-04-11 11:37:09 +02:00
Armin Novak
13c025e04c
[winpr,sspi] remove sspi_SetAuthIdentityWithUnicodePassword
...
the function is useless as we always use the SetAuthIdentityW API now
2023-04-11 11:37:09 +02:00
Rubycat
207d886a90
Unique kerberos ccaches for parallel connections.
...
The "MEMORY" ccache is shared in a process.
If a client uses it to make parallel connections,
the same ccache may be used for several clients with distinct
credentials.
To prevent such sharing we create a unique, dedicated ccache when
necessary with krb5_cc_new_unique.
We should destroy the ccaches we created, to avoid leaks.
The struct KRB_CREDENTIALS is extended to express the ccache ownership.
2023-04-07 11:21:12 +02:00
Rubycat
cec88e53bd
don't log an error when running GetCurrentThread from non winpr thread
...
Since 7c4a774e4e
this can legitimately happen in WaitForMultipleObjectsEx and is not
actually an error.
2023-04-07 11:03:56 +02:00
akallabeth
efcacda24c
[winpr,sspi] do not abort on empty password
...
sspi_SetAuthIdentityA might be called with empty passwords, do not abort
under these conditions.
2023-04-06 12:11:46 +02:00
Armin Novak
947bc7fe04
[winpr] added Win32ErrorCode2Tag
2023-04-05 10:02:27 +02:00
akallabeth
cdf1047bef
[crt] add windows definition for winpr_aligned_calloc
2023-03-28 11:34:52 +02:00
akallabeth
37aaa7802a
[winpr,crt] added winpr_aligned_calloc
2023-03-28 11:34:52 +02:00
akallabeth
e8fbac14cc
[winpr,shell] log when a known path is NULL
...
* Add GetKnownPathIdString to get a string representation of the known
path ID requested
* Added a log message if a requested path is NULL
2023-03-24 08:42:40 +01:00
akallabeth
2f17622f65
[cmake] link PUBLIC for static builds
2023-03-16 10:58:01 +01:00
akallabeth
69b4898b73
[winpr,clipboard] fix wrong return check
2023-03-15 08:22:23 +01:00
akallabeth
7fe70c5685
[winpr,types] define SSIZE_T to ssize_t if available
2023-03-15 08:22:23 +01:00
akallabeth
41cb69b135
[winpr,stream] fix Stream_Read_UTF16_String
...
Fix wrong arguments for stream length check
2023-03-09 11:17:37 +01:00
Armin Novak
49f44303b1
[server,shadow] clean up certificate generation
2023-03-08 13:07:20 +01:00
Armin Novak
3d8cb485f4
[warnings] Fixed strict-prototypes warnings
2023-03-06 10:04:59 +01:00
Armin Novak
9a7432d23c
[winpr,stream] log Stream_Read_UTF16_String failures
2023-03-06 08:35:24 +01:00
Armin Novak
e129ab749b
fixed parsing of FILEDESCRIPTORW in WinPR
2023-03-05 17:55:28 +01:00
Armin Novak
9fb4465722
[winpr,clipboard] fix text/uri-list parsing
...
abort if an empty string remains
2023-03-05 17:55:28 +01:00
David Fort
7c4a774e4e
winpr: fix WaitForMultipleObjectsEx(alertable) call from non winpr threads
...
When WaitForMultipleObjectsEx is called with the alertable flag set from a non
WinPR thread, we shall not try to treat APC, as for sure there is no APC scheduled,
as previous call that would have scheduled such APC would have failed.
2023-03-05 17:10:37 +01:00
Armin Novak
a726fa613a
[winpr] improve digest failure logging
2023-03-05 17:03:18 +01:00
Armin Novak
6d0a9b075b
[winpr,cynch] WINPR_ASSERT critical section functions
2023-03-01 13:45:13 +01:00
akallabeth
b4e9c8b39f
[build] removed complex libraries
...
* remove obsolete complex libraries helper
* fix static linking
2023-03-01 08:18:34 +01:00
akallabeth
61175a96ea
[winpr,clipboard] fixed mate-copied-files
...
wrong lineending and size fixed
2023-02-28 09:47:54 +01:00
Armin Novak
e1307b90db
[winpr,clipboard] fix length of uri list
...
we overallocate the size, so ensure the result size only contains the
data actually used.
2023-02-28 09:47:54 +01:00
akallabeth
c9e61ff0c5
[cmake] simplify krb5 detection
2023-02-27 11:18:02 +01:00
Armin Novak
acc415442a
[winpr] add macros for library options
...
* compile definitions
* linker options
* cflags
2023-02-27 11:18:02 +01:00
Armin Novak
f0e9797b4c
[build] require CMake >= 3.13
...
required for target_link_options
2023-02-27 11:18:02 +01:00
Armin Novak
f4acc88c58
[winpr,clipboard] add getter for clipboard id string
2023-02-23 20:28:15 +01:00
Armin Novak
d8d4d044ff
[clipboard] cleanup definitions
...
* remove definitions for clipboard formats that are dynamically registered
* fix length of converted clipboard string
2023-02-23 20:28:15 +01:00
Armin Novak
9cb28f47ef
xxx
2023-02-21 16:42:54 +01:00
Armin Novak
1522b5aa91
xx
2023-02-21 16:42:54 +01:00
Armin Novak
3d3e577190
[winpr,clipboard] fix file list conversion
2023-02-21 16:42:54 +01:00
Armin Novak
53afedf9de
[winpr,clipboard] close file after read
2023-02-21 16:42:54 +01:00
Armin Novak
10404121c4
[winpr,clipboard] fix error message format string
2023-02-21 16:42:54 +01:00
Armin Novak
62028f1488
[winpr,file] map EMFILE
2023-02-21 16:42:54 +01:00
akallabeth
2f05166fb1
[winpr,crypto] improve logging
2023-02-03 11:09:59 +01:00
akallabeth
f2b4fa9acc
[winpr,sspi] fix const correctness of function argument
...
sspi_SetAuthIdentityWithUnicodePassword arguments should be const to
avoid compiler warnings if the variable is also const
2023-02-01 09:51:54 +01:00
akallabeth
ee07a13130
[cleanup] fix compiler warnings
2023-01-26 09:30:17 +01:00
Armin Novak
1dc2225bd2
[winpr,wlog] include function name in log message
...
default to print the function the log message was called from
2023-01-25 16:26:39 +01:00
Armin Novak
641022b795
[logging] remove __FUNCTION__ from actual message
...
prefer the log formatter to provide that information.
2023-01-25 16:26:39 +01:00
akallabeth
de40b43037
[winpr,stream] modify logging stream length checks
...
* Split length argument to nmemb and size for all Stream_CheckAndLogRequiredLength* functions
* Add new macros to allow setting nmemb and size arguments
2023-01-25 14:27:32 +01:00
akallabeth
74530a7931
[format strings] ensure __LINE__ is of type size_t
...
__LINE__ is not particularily well defined (most fall back to int).
We want to ensure that all the uses in a format string match the format
specifier, so do an explicit cast
2023-01-25 14:27:32 +01:00
akallabeth
8ed37e68d2
[stream] use logging capacity checks
2023-01-25 14:27:32 +01:00
akallabeth
b6648288e4
[winpr,stream] add functions to check and log capacity
...
Add functions (and macros) to provide a method to check the remaining
capacity of a stream and log failures
* Stream_CheckAndLogRequiredCapacityWLog
* Stream_CheckAndLogRequiredCapacityWLogEx
* Stream_CheckAndLogRequiredCapacityWLogExVa
2023-01-25 14:27:32 +01:00
Armin Novak
f62c658e17
[winpr] Make Stream_SafeSeek log a failure
2023-01-24 10:16:55 +01:00
Armin Novak
2d16ab5255
[winpr,sam] fix inalid NULL arguments
2023-01-11 21:37:16 +01:00
Armin Novak
39210d1efd
[winpr,sam] allow empty domain in SamLookupUserW
2023-01-11 21:37:16 +01:00
akallabeth
92d3e3c64a
[winpr] use WINPR_ prefix for conditional includes
2023-01-10 17:38:00 +01:00
akallabeth
2479ebd816
Fixed compiler warnings
2023-01-10 17:38:00 +01:00
David Fort
9e3bc8e3af
wtsapi: add new kind of query to retrieve the open status
2022-12-27 11:02:29 +01:00
Armin Novak
b917dbad32
[winpr,stream] add length check helper
2022-12-22 15:09:03 +01:00
Armin Novak
7a95c7343d
[winpr,wlog] fixed noisy wlog filter
2022-12-22 15:09:03 +01:00
akallabeth
784becd946
[winpr,image] add winpr_bitmap_write_ex
...
Added a helper function writing a bitmap from an image that has a stride
that is not width * <bytes per pixel>
2022-12-16 11:03:13 +01:00
Armin Novak
51e49b4329
[winpr,asn] Fixed a compiler warning
...
WinPrAsn1DecReadEnumerated expects an argument of type
WinPrAsn1_ENUMERATED* so ensure the variable referenced is of said type.
2022-12-15 14:57:29 +01:00
David Fort
e915b294d5
winpr: add functions to test for read / write availability in pollset
2022-12-13 15:54:33 +01:00
fifthdegree
497ada661f
Change the logic flow on error to a better style
...
Use do-while and break instead of checking return value before every
line
2022-12-13 14:26:45 +01:00
fifthdegree
e4b82cf0ef
[kerberos] Assert expected pointer arguments
2022-12-13 14:26:45 +01:00
fifthdegree
3ffc32176d
Support heimdal kerberos implementation
...
Add support for heimdal kerberos in addition to mit kerberos
2022-12-13 14:26:45 +01:00
fifthdegree
6c8e4d668d
Don't free empty structures
2022-12-13 14:26:45 +01:00
fifthdegree
1e6c5fc782
Allow setting kdc hostname
...
Use user-provided kdc hostname when given
2022-12-13 14:26:45 +01:00
akallabeth
37ab25e19d
Fixed all Wdocumentation warnings
2022-12-12 14:24:55 +01:00
akallabeth
d4808dd3e1
Fixed various compiler warnings
2022-12-09 15:58:26 +01:00
akallabeth
7ab917dca8
Fixed Wsign-compare warnings
2022-12-09 15:58:26 +01:00
Armin Novak
bd7e2263ad
fixed const and type cast warnings
2022-12-09 15:58:26 +01:00
akallabeth
0186a9b303
Fixed some warnings
2022-12-09 15:58:26 +01:00
akallabeth
99ad9db4e6
[winpr,path] Fixed WCHAR and char mixup
2022-12-09 15:58:26 +01:00
akallabeth
e86f49d7d7
[winpr,utils] eliminate integer conversion warning
2022-12-09 15:58:26 +01:00
akallabeth
873a11aa10
[winpr,path] Eliminate unreachable code
2022-12-09 15:58:26 +01:00
akallabeth
7f221a653d
Fixed Wpedantic warnings
2022-12-09 15:58:26 +01:00
akallabeth
7894cf545c
Fixed Wmissing-varialbe-declarations warnings
2022-12-09 15:58:26 +01:00
akallabeth
a3686f0f1f
Fixed Wmissing-prototypes warnings
2022-12-09 15:58:26 +01:00
akallabeth
3ddf99ad64
Fixed Wformat warnings
2022-12-09 15:58:26 +01:00
akallabeth
7e31b877fc
[winpr, tests] Fixed ASN unit test const warning
2022-12-09 15:58:26 +01:00
akallabeth
389817cb57
[winpr,crypto] fixed const correctness of md4/5
2022-12-09 15:58:26 +01:00
akallabeth
aaae70ff05
Fixed missing const casts
2022-12-09 15:58:26 +01:00
akallabeth
bf0ce5bf3a
[winpr,sspi] Fixed const correctness of API
...
sspi_GetAuthIdentityVersion and sspi_GetAuthIdentityFlags do not
modify, make arguments const
Same is true for sspi_GetAuthIdentityUserDomainW,
sspi_GetAuthIdentityUserDomainA, sspi_GetAuthIdentityPasswordA and
sspi_GetAuthIdentityPasswordW
2022-12-09 15:58:26 +01:00
Armin Novak
558d5b5e8d
[build,ci] update ci to not always build kerberos
...
disable kerberos for targets not supporting it
2022-12-09 12:36:12 +01:00
Armin Novak
73d5f37537
[build] move krb5 detection to winpr
...
only used internally in winpr, no need for project wide configuration
2022-12-09 12:36:12 +01:00
Armin Novak
f2016c77c5
[winpr] renamed WITH_GSS_NO_NTLM_FALLBACK
2022-12-09 12:36:12 +01:00
Armin Novak
819a62a8df
Disable kerberos support for android and ios
2022-12-09 12:36:12 +01:00
Armin Novak
2fdae68bbd
[build] disable krb5 support on windows
...
windows provides native support, no need for libkrb5
2022-12-09 12:36:12 +01:00
fifthdegree
ad87144ce5
Rename WITH_GSSAPI to WITH_KRB5
...
Change cmake variables to not be gssapi specific
2022-12-09 12:36:12 +01:00
akallabeth
fb6c48bcc3
[winpr] define WINPR_ASSERT to assert
...
If WITH_VERBOSE_WINPR_ASSERT is not set define WINPR_ASSERT to be the
normal C assert
2022-12-09 11:09:38 +01:00
akallabeth
c7bd8c3df9
[winpr,sspi] fix kerberos resource cleanup
...
kerberos cache and keytab were not properly cleaned up for cases where
the credentials were not available in kerberos
2022-12-09 11:08:11 +01:00
akallabeth
6613155275
[winpr,utils] pretty print stacktrace
...
do not add an additional newline in the messages.
2022-12-09 10:28:40 +01:00
Armin Novak
074f28073a
[winpr,sspi] enable negotiate by default
2022-12-08 11:07:00 +01:00
akallabeth
9ca34bc876
[winpr,sspi] fix memory leak in kerberos_InitializeSecurityContextA
2022-12-02 15:08:09 +01:00
akallabeth
b0aef46caf
[winpr,krb] fixed kerbeos context handling
2022-12-02 15:08:09 +01:00
Armin Novak
e1eacad74c
[scard] fixed memory leak
...
card_id_and_name_* return allocated values, free after use
2022-12-02 15:08:09 +01:00
Armin Novak
58bc1ee4c9
[smartcard] fix multi string conversion
2022-12-02 15:08:09 +01:00
David Fort
bc8afa0ad5
ncrypt_pkcs11: fix buffer allocation for key name
2022-12-02 15:08:09 +01:00
Armin Novak
0091f72761
[winpr,smartcard] fix PCSC_SCardListReaders
2022-12-02 15:08:09 +01:00
Armin Novak
bbf893a5d8
[winpr,crt] fix unicode conversion functions
...
There are subtle differences between MultiByteToWideChar,
WideCharToMultibyte and the ICU equivalents
2022-11-29 15:42:10 +01:00
akallabeth
6014efc19b
[winpr,smartcart] simplified casts
2022-11-28 10:42:36 +01:00
akallabeth
66dad5deae
fixed review issues
...
* Overallocation in unicode functions
* Removed useless statements
* Fixed loop indices
2022-11-28 10:42:36 +01:00
akallabeth
7bf8b46726
[smartcard] Use multistring convertion functions
2022-11-28 10:42:36 +01:00
Armin Novak
2784d54d6f
Deprecate MultiByteToWideChar and WideCharToMultiByte
2022-11-28 10:42:36 +01:00
Armin Novak
6f2d7f94cf
Deprecate ConvertFromUnicode and ConvertToUnicode
2022-11-28 10:42:36 +01:00
akallabeth
5799fb2018
Replace ConvertFromUnicode and ConvertToUnicode
...
* Use new ConvertUtf8ToWChar, ConvertUtf8NToWChar,
ConvertUtf8ToWCharAlloc and ConvertUtf8NToWCharAlloc
* Use new ConvertWCharToUtf8, ConvertWCharNToUtf8,
ConvertWCharToUtf8Alloc and ConvertWCharNToUtf8Alloc
* Use new Stream UTF16 to/from UTF8 read/write functions
* Use new settings UTF16 to/from UTF8 read/write functions
2022-11-28 10:42:36 +01:00
Armin Novak
2aefa9418d
[winpr,stream] Added functions to read/write utf-8
...
* Stream_Write_UTF16_String_From_UTF8 writes a UTF-8 string to a
stream in UTF-16 encoding
* Stream_Read_UTF16_String_To_UTF8 reads a UTF-16 encoded string
from the stream and returns it in UTF-8 encoding
2022-11-28 10:42:36 +01:00
Armin Novak
0fb8c9e87e
[winpr,crt] Added ConvertMszWCharNToUtf8*
2022-11-28 10:42:36 +01:00
akallabeth
4f7114a140
[winpr,crt] Added ConvertMszUtf8NToWChar*
...
A conversion function that can handle multistrings (e.g. each element is
'\0' delimited, termination is '\0\0')
2022-11-28 10:42:36 +01:00
akallabeth
5c91c30a18
[winpr,crt] Added new unicode conversion functions
...
* Added functions converting WCHAR to/from UTF-8 with given buffers
and proper size_t arguments to have a centralized check for
integer overflows on RDP deserialization
* Added allocating functions converting WCHAR to/from UTF-8 as
convenience
2022-11-28 10:42:36 +01:00
akallabeth
5ae159303f
[winpr,crt] Added unicode conversion backends
...
* Support apple with NSString
* Support android via JNI
* Split ICU to own file
2022-11-28 10:42:36 +01:00
akallabeth
00ee213f97
[winpr,android] Unify JNI_OnLoad
...
* Split JNI_OnLoad and JNI_OnUnload to own module to be usable from more
than only timezone
* Explicitly call System.loadLibrary('winpr') (and other FreeRDP
libraries) in android client as JNI_OnLoad is only triggered by that
and not implicit loading
2022-11-28 10:42:36 +01:00
akallabeth
113290c35c
[winpr,string] Use size_t arguments
...
* Use size_t arguments for ByteSwapUnicode, ConvertLineEndingToLF
and ConvertLineEndingToCRLF
* Simplify code of line conversion functions
2022-11-28 10:42:36 +01:00
akallabeth
3262e11d1f
[winpr,asn] fix too verbose log message
2022-11-24 11:43:01 +01:00
Armin Novak
7b95014157
[winpr,crypto] Split crypto header renamed
...
* Renamed custom winpr crypto function header
* Added compatiblity header
2022-11-23 09:39:56 +01:00
Armin Novak
d03f230426
[winpr,crypto] Split headers
...
Split windows API emulation from custom functions
Including both might yield issues with OpenSSL headers
2022-11-21 13:27:08 +01:00
Armin Novak
f81b3b05d2
Fixed -Wtautological-value-range-compare
2022-11-21 10:12:31 +01:00
Armin Novak
7c5652c15a
Fixed -Wmissing-prototypes
2022-11-21 10:12:31 +01:00
Armin Novak
a40ade5abc
Fixed -Wincompatible-pointer-types
2022-11-21 10:12:31 +01:00
Armin Novak
bc7c4cc6a1
Fixde -Wimplicit-function-declaration
2022-11-21 10:12:31 +01:00
Armin Novak
9adc1e4b08
Fixed -Wunreachable-code-return
2022-11-21 10:12:31 +01:00
Armin Novak
31c1700c0c
Fixed -Wunused-variable
2022-11-21 10:12:31 +01:00
Armin Novak
921315fdbf
Fixed -Wmissing-variable-declarations
2022-11-21 10:12:31 +01:00
Armin Novak
dacebc62a3
Use Stream_CheckAndLogRequiredLength, fix WLog TAG
...
* Log stream length requirement violations
* Use proper defines for WLog tags
2022-11-21 09:57:27 +01:00
Armin Novak
43eccb6247
[winpr,io] removed unused unimplemented functions
2022-11-21 09:16:54 +01:00
Mike Gilbert
3053543068
winpr/string.h: #include <stdio.h> for snprintf
...
Fixes failure with -Werror=implicit-function-declaration.
```
FAILED: libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o
/usr/bin/ccache /usr/bin/cc -DEXT_PATH=\"/usr/local/lib64/freerdp3/extensions\" -DFREERDP_EXPORTS -DNDEBUG -DWITH_OPENSSL -DWITH_VERBOSE_WINPR_ASSERT -DWITH_WAYLAND -DWITH_X11 -DWITH_XKBFILE -D_FILE_OFFSET_BITS=64 -Dfreerdp_EXPORTS -I/home/floppym/src/FreeRDP/winpr/include -I/home/floppym/src/FreeRDP/build/winpr/include -I/home/floppym/src/FreeRDP/build -I/home/floppym/src/FreeRDP/build/include -I/home/floppym/src/FreeRDP/include -Werror=implicit-function-declaration -fPIC -Wall -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -fno-omit-frame-pointer -O3 -DNDEBUG -flto=auto -fno-fat-lto-objects -fPIC -std=gnu11 -MD -MT libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o -MF libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o.d -o libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o -c /home/floppym/src/FreeRDP/libfreerdp/core/state.c
In file included from /home/floppym/src/FreeRDP/libfreerdp/core/state.c:24:
/home/floppym/src/FreeRDP/libfreerdp/core/state.c: In function ‘state_run_result_string’:
/home/floppym/src/FreeRDP/winpr/include/winpr/string.h:186:19: error: implicit declaration of function ‘snprintf’ [-Werror=implicit-function-declaration]
186 | #define _snprintf snprintf
| ^~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:67:9: note: in expansion of macro ‘_snprintf’
67 | _snprintf(buffer, buffersize, "%s [%d]", name, status);
| ^~~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:25:1: note: include ‘<stdio.h>’ or provide a declaration of ‘snprintf’
24 | #include <winpr/string.h>
+++ |+#include <stdio.h>
25 |
/home/floppym/src/FreeRDP/winpr/include/winpr/string.h:186:19: warning: incompatible implicit declaration of built-in function ‘snprintf’ [-Wbuiltin-declaration-mismatch]
186 | #define _snprintf snprintf
| ^~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:67:9: note: in expansion of macro ‘_snprintf’
67 | _snprintf(buffer, buffersize, "%s [%d]", name, status);
| ^~~~~~~~~
/home/floppym/src/FreeRDP/winpr/include/winpr/string.h:186:19: note: include ‘<stdio.h>’ or provide a declaration of ‘snprintf’
186 | #define _snprintf snprintf
| ^~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:67:9: note: in expansion of macro ‘_snprintf’
67 | _snprintf(buffer, buffersize, "%s [%d]", name, status);
| ^~~~~~~~~
cc1: some warnings being treated as errors
```
Bug: https://bugs.gentoo.org/881695
2022-11-18 06:43:11 +01:00
Richard E. Silverman
7bbb8706ee
fix segfault on missing CSP
...
These routines:
NCryptOpenStorageProvider()
winpr_NCryptOpenStorageProviderEx
would segfault with PKCS11 support enabled, if the user did not supply
a service provider name ("CSP"); they assumed the parameter
pszProviderName would always be non-NULL, but it's NULL in that case.
2022-11-16 14:18:22 +01:00
akallabeth
d71174d091
[winpr, crt] Added wcsstr implementation
2022-11-14 09:28:22 +01:00
akallabeth
cf5cb35697
[winpr, crt] Fix wcs*cmp and wcs*len checks
2022-11-14 09:28:22 +01:00
akallabeth
ed57dd37b9
Added function _wcsncmp
...
* Compare WCHAR strings up to n characters
2022-11-14 09:28:22 +01:00
Armin Novak
843680e543
Clipboard syntesizer replaces path separators
...
The clipboard expects windows style paths, so replace all / with \
2022-10-28 08:22:43 +02:00
Armin Novak
f9faf3d3d5
Unified synthetic file cleanup
2022-10-28 08:22:43 +02:00
Armin Novak
a7a8e7ee8d
Fixed read/write of filedescriptorw times
2022-10-28 08:22:43 +02:00
Armin Novak
096e98d8b5
Moved verbose log message
...
Do not log expected abort conditions
2022-10-28 08:22:43 +02:00
Armin Novak
dbb1889a54
Removed unused BipBuffer
2022-10-27 10:39:25 +02:00
Armin Novak
4ea4f5e936
Fixed compile error for old openssl
2022-10-27 10:03:32 +02:00
akallabeth
22dce52d15
Add function winpr_MoveFileEx
2022-10-25 13:58:05 +02:00
fifthdegree
78ba60f50f
Check for NULL pointer in winpr_Digest_Free
2022-10-24 08:33:57 +02:00
akallabeth
68ad8d5a1c
Added missing return in winpr_Digest_New
2022-10-20 19:24:41 +02:00
Armin Novak
2a181c19c5
Added missing include
2022-10-19 20:33:17 +02:00
Armin Novak
a66d9d1706
Improve OpenSSL provider loading
...
* Added log messages for failure to load a provider
* Add code to clean up loaded providers on shutdown
2022-10-19 20:33:17 +02:00
Armin Novak
1f6476016d
Update command line option /sec*
...
* Deprecate /sec-* flags
* Allow multiple arguments for /sec
2022-10-19 20:31:53 +02:00
fifthdegree
ffe8e45aff
Pass bindings through Negotiate on first call
2022-10-19 18:55:38 +02:00
fifthdegree
e847f159a6
Try to use the smartcard key name Windows uses
...
Windows expects the containerName field in TSSmartCardCreds to be what
it would use for a smartcard key's name. Try to accomodate that (at
least for PIV and GIDS cards).
2022-10-19 18:55:38 +02:00
akallabeth
eb77fd7b0d
Added replacement HMAC-MD5 implementation
2022-10-19 08:17:11 +02:00
akallabeth
3a5fb5e3a3
Added replacement MD5 implementation
2022-10-19 08:17:11 +02:00
akallabeth
309a6bea77
Added replacement MD4 implementation
2022-10-19 08:17:11 +02:00
akallabeth
1e1b3b6c3c
Updated TestCryptoHash
...
Do multiple updates to hashes to better test implementation
2022-10-19 08:17:11 +02:00
akallabeth
43c5289928
Replaced memset/ZeroMemory with initializer
...
* Addes WINPR_ASSERT on many occations
* Replaced memset with array initializer
* Replaced ZeroMemory with array initializer
2022-10-14 12:11:01 +02:00
David Fort
57d2a27980
fix smartcard listing
...
This commit fixes various bugs that I've noticed on some windows systems with
smartcards that contains multiple certificates:
* With some drivers if you retrieve the ATR while enumerating the NCrypt keys, it seems to
confuse the NCrypt key context (and you're unable to retrieve certificate property). As
we don't use the ATR, let's remove the ATR retrieval.
* if don't give any user or domain on the command line, in settings you get User=Domain=NULL,
but if you pass /u:user, you get User="user" and Domain = ""(empty string not NULL). The
smartcard filtering by user/domain was not ready for that.
2022-10-14 12:05:16 +02:00
akallabeth
b70db86e51
Fixed uninitialized variable warnings
2022-10-14 11:16:23 +02:00
akallabeth
bba18b7af5
Fixed -Waddress warnings
2022-10-13 14:38:06 +02:00
Armin Novak
1d71ace487
Fixed PubSub, return error on NULL
2022-10-13 13:57:11 +02:00
David Fort
f76c14c256
fix smartcard logon with smartcard emulation
...
When smartcard emulation was enabled we were dumping the key and cert to
temporary files for PKINIT call, but they were deleted before we have
actually done the PKINIT. This patch fixes it.
It also add debug statement for the listing of smartcard keys / certs.
This also fixes the listing of smartcard on certain windows configurations
were we have to force NCRYPT_SILENT when doing a NCryptOpenKey.
2022-10-13 12:03:58 +02:00
Marc-André Moreau
27a865af74
Add Negotiate SSPI authentication module filtering
2022-10-12 22:07:45 +02:00
akallabeth
2f84a4856c
Fixed missing-field-initializers warnings
2022-10-11 13:28:30 +02:00
akallabeth
9d197b263c
Fixed conditional-uninitialized warnings
2022-10-11 13:28:30 +02:00
akallabeth
23082b090c
Removed misleading comments
2022-10-11 13:28:30 +02:00
Martin Fleisz
b45f580055
sspi: Do not call copy on empty strings
...
It might happen that the username/domain/password strings are set to an
empty string. This means that the null pointer check will pass but the
application will assert in the copy helper function.
This fix simple checks the length of the identity strings and only calls
copy in case the length is greater than 0.
2022-10-11 12:15:47 +02:00
Armin Novak
5476d48025
Use Stream_StaticInit for bitmap read
2022-10-10 15:29:45 +02:00
Armin Novak
d879d87610
Use static wStream for packet logger
2022-10-10 15:29:45 +02:00
David Fort
58a3919435
winpr: add some checks in InitializeSecurityContext and AcceptSecurityContext
...
In native windows SSPI, AcceptSecurityContext and InitializeSecurityContext return
SEC_E_INVALID_HANDLE if the provided context is an empty context. Add the checks so
that our SSPI implementation behave the same way.
2022-10-10 09:01:04 +02:00
fifthdegree
d6c614b583
Fix bugs and add features in sspi packages
...
* Kerberos: correctly set principal when no service part is provided
* Kerberos: don't expect a krb_ap_rep when mutual auth was not requested
* Kerberos: include gss header in max signature length
* Negotiate: tolerate optimistic token being the final one
* Kerberos: support channel bindings
* Negotiate: pass channel bindings to sub-mechanism
* NTLM: tolerate receiving an input buffer desc on first call
2022-10-06 21:33:01 +02:00
Marc-André Moreau
479e891545
check return values for SetCredentialsAttributes, throw warnings for unsupported attributes
2022-09-30 19:33:12 +02:00
Marc-André Moreau
fddb0dac75
add missing OOM checks
2022-09-30 19:33:12 +02:00
Marc-André Moreau
eadbb15741
run clang-format
2022-09-30 19:33:12 +02:00
Marc-André Moreau
80a1fc6a98
add SetCredentialsAttributes SSPI function
2022-09-30 19:33:12 +02:00
Marc-André Moreau
ee233eac39
add SetCredentialsAttributes(SECPKG_CRED_ATTR_KDC_URL) in Kerberos SSPI module
2022-09-30 19:33:12 +02:00
Marc-André Moreau
3224a43ee3
use SecurityFunctionTable version 3 with SetCredentialsAttributes function pointer
2022-09-30 19:33:12 +02:00
Marc-André Moreau
c7af6fabe0
add SetCredentialsAttribute to SecurityFunctionTable
2022-09-30 19:33:12 +02:00
Marc-André Moreau
61e5bdec6a
add missing SSPI credential attribute IDs and structs
2022-09-30 19:33:12 +02:00
Marc-André Moreau
23f66f3987
add KDC URL to internal SSPI Kerberos settings
2022-09-30 19:33:12 +02:00
akallabeth
1849632c43
Fixed format strings to match arguments ( #8254 )
...
* Fixed format strings to match arguments
Reviewed and replaced all %d specifiers to match proper type
* Added proxy dynamic channel command type to log messages.
2022-09-29 14:55:27 +02:00
David Fort
c5c2e37f6d
More winpr fixes ( #8255 )
...
* Fix build with mingw
4a71cab2e7
broke wf_events.c.
The drive channel was not building because of missing definitions.
* winpr: make functions return False when not implemented
2022-09-28 16:07:04 +02:00
Kang Lin
71b48f61c1
WinPR::Clipboard::SyntheticFile: FIX match *.* directory bug. The FilePatternMatchA don't support *.* pattern
2022-09-27 09:27:27 +02:00
Armin Novak
ba2e5477d1
Added additional checks and fixed WCHAR usage.
2022-09-26 14:01:20 +02:00
Kang Lin
195b98a9a9
WinPR::Clipboard: Refactor synthetic file
...
rename posix.c to synthetic_file.c
2022-09-26 14:01:20 +02:00
David Fort
e944d8d243
winpr: improve WaitForSingleObject and WaitForMultipleObject with processes
...
This patch improves waiting on process handles:
* under linux we take advantage of pidfd if available, when it can be used it
allows to have one or more process in the objects that are WaitForMultipleObject-ed.
* the patch also make the code honor the timeout parameter during a WaitForSingleObject and
possibly run completion when WaitForSingleObjectEx is executed with alertable set to true
2022-09-26 12:08:00 +02:00
akallabeth
d2ab631c40
Test uri fix ( #8232 )
...
* Fixed TestUri unit test
* Make proper unit test out of the test function
* Add proper test cases
* Replace FindFirstFileA with FindFirstFileW for addins
This allows addin paths to contain unicode symbols.
* Fixed parse_uri_to_local_file definition
* Move to common clipboard.c file
* Move to header file so it can be included in test case
* Added WINPR_LOCAL for test builds
This macro exports internal functions in case of a unit test build
This way unit tests can access these without other workarounds.
* Fixed typo in function name is_dos_driver
* Cleaned up FindFirstFileW call
Use a wrapper function to convert to unicode and call the function
* Cleaned up BUILD_TESTING and EXPORT_ALL_SYMBOLS
* EXPORT_ALL_SYMBOLS now does as the name implies and exports all
non static functions/variables from the library.
* BUILD_TESTING now only sets the defines for test code and
activates EXPORT_ALL_SYMBOLS to allow tests to access internal
code
* Fixed windows client warnings
* disable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
2022-09-26 11:22:02 +02:00
David Fort
ccffa8dfa2
winpr: add a function to export timer file descriptor
...
The equivalent exist for Events, and it happens that sometime you also need to access
the internal file descriptor associated with a timer.
2022-09-23 09:04:45 +02:00
David Fort
56204164fe
core: check the kind of object for events and threads functions
...
This patch adds some checks for the type of object in Event and Thread functions,
this may help to find bugs where a handle with the wrong type is used as argument
of these functions.
2022-09-21 16:04:02 +02:00