Commit Graph

577 Commits

Author SHA1 Message Date
Connor McAdams 85cb1ff91e secur32: Fix trace in schannel pull_adapter function.
Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 22:04:05 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Connor McAdams 26f81bb883 secur32/tests: Add tests for DTLS handshake retransmission.
Successive calls to InitializeSecurityContext without a new pInput
buffer will result in retransmission, creating a handshake packet with
an incremented sequence number value, but otherwise identical to the
last call to InitializeSecurityContext.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Connor McAdams 387a30a8ce secur32: Switch back to non-blocking mode for DTLS sessions.
In order for DTLS retransmission to occur properly, we need to be in
non-blocking mode.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Connor McAdams 290cd6769f secur32: Properly handle NULL pInput argument for DTLS contexts in schan_InitializeSecurityContextW.
When a NULL pInput argument is passed into InitializeSecurityContextW
for an existing DTLS context, we need to retransmit the last handshake
packet.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Connor McAdams 795d3e2cb5 secur32: Clear SECBUFFER_ALERT output buffer count in schan_InitializeSecurityContextW.
Since we write no data into this buffer, set the count to 0. Otherwise,
some applications assume there has been alert data written into the
buffer.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Connor McAdams 117f79aa19 secur32: Add support for setting DTLS timeouts.
Add support for setting the DTLS timeout values, and set the
retransmission timeout value to 0 to allow for retransmission on each
call to schan_InitializeSecurityContext.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Connor McAdams 093d53856d secur32: Validate output buffer size in schan_InitializeSecurityContextW().
Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:56 +01:00
Connor McAdams ef1ac61a7d secur32: Set phNewContext to phContext in schan_InitializeSecurityContextW().
If a valid pointer for phNewContext is passed in alongside a valid phContext
pointer, initialize phNewContext with the value of phContext on success.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:56 +01:00
Connor McAdams 54185c9c16 secur32/tests: Add more DTLS tests.
Add more tests for DTLS, and clear up behavior of prior tests.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-19 10:39:38 +01:00
Hans Leidekker ea96a9c817 kerberos: Avoid a crash on NULL expiry parameter.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52353
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-11 15:15:34 +01:00
Alexandre Julliard 392bdb85e7 secur32: Convert the Unix library to the __wine_unix_call interface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-04 13:24:36 +01:00
Alexandre Julliard 1cf48b4684 secur32: Pre-allocate the token buffer for handshake() on the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-04 13:23:59 +01:00
Alexandre Julliard abdae53938 secur32: Move the memory allocation for get_unique_channel_binding() to the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-04 13:23:49 +01:00
Alexandre Julliard bcc30639ad secur32: Move the memory allocation for get_session_peer_certificate() to the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-04 13:23:38 +01:00
Alexandre Julliard a4d69c874b secur32: Move the buffers initialization and callbacks to the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-04 13:23:24 +01:00
Alexandre Julliard 9894e109ac secur32: Move the decrypt message receive loop to the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-04 13:23:19 +01:00
Alexandre Julliard 97ea9ee41c secur32: Move the get_buffer callback to the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 23:20:10 +01:00
Alexandre Julliard 4e579d49a7 secur32: Store the GnuTLS session inside the transport.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 23:20:10 +01:00
Alexandre Julliard 37eab1f496 secur32: Move the pull/push callbacks to the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 23:20:10 +01:00
Alexandre Julliard 143bd63b27 include: Remove some no longer used Unicode functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-01 18:13:54 +01:00
Alexandre Julliard ef6e33f89f include: Don't include wine/port.h in Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Alexandre Julliard ef9a0f3bc3 include: Don't include stdlib.h in wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Hans Leidekker 84a968abce secur32/tests: Add DTLS tests.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 09:29:12 +02:00
Hans Leidekker 6047409669 secur32: Fix error return for DTLS contexts in schan_InitializeSecurityContextW().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 09:29:08 +02:00
Hans Leidekker c1993458ac secur32: Validate the context handle in schan_InitializeSecurityContextW().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 09:29:06 +02:00
Hans Leidekker 96185c7e39 secur32: Clear expiry timestamp in schan_InitializeSecurityContextW().
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 09:29:04 +02:00
Hans Leidekker 5e8acd7a04 secur32/tests: Check supported DTLS protocols.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 09:29:02 +02:00
Hans Leidekker a2d8fe5597 secur32: Fix expected buffer size in trace message.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 09:29:00 +02:00
Gijs Vermeulen 441ef40813 secur32: Remove macOS backend.
GnuTLS has been the default since wine-6.11.

Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-30 20:00:43 +02:00
Hans Leidekker ddf8c92721 secur32: Don't allocate new handles in the wrapper.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Hans Leidekker 54c3cc0819 secur32: Store LSA package and handle in the credential/context handle's dwLower field.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Huw Davies 1f0bc618ed secur32: Restore the done label.
This was incorrectly removed by commit 5c0fe4db7d.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 08:57:35 +02:00
Chip Davis 5c0fe4db7d configure: Stop checking for SSLCopyPeerCertificates().
This function was introduced in 10.5, and we now require 10.8. We can
safely assume it is present.

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:04:05 +02:00
Chip Davis 699fc68f2a secur32: Use the SecItemExport() function.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:03:49 +02:00
Alexandre Julliard 088a787a2c makefiles: Make -mno-cygwin the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Nikolay Sivov 37bc7518b8 secur32: Fix allocation size (Coverity).
Fixes copy-paste issue from fbd30fff03.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 19:34:23 +02:00
Francois Gouget ab9ba9968f secur32/tests: Fix an ASCII / ANSI mixup in an ntlm comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-25 18:28:54 +02:00
Julien Loir 2ba8976f63 secur32: Ignore attribute when searching for buffer type.
Buffer types in PSecBufferDesc can have an optional attribute. When
searching, it must be ignored to ensure the buffer type is found.

Signed-off-by: Julien Loir <mini.jul.jl@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-26 19:42:24 +02:00
Alistair Leslie-Hughes 8ed81720e8 secur32: Set error flag on pull callback.
Fixes a regression introduced in b8aaf86b2d

Partial revert the pull_timeout function, which now return -1 and sets the
transport error to try again.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51440
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-20 12:13:13 +02:00
Hans Leidekker b8aaf86b2d secur32: Use blocking mode for DTLS sessions.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-29 19:55:22 +02:00
Gijs Vermeulen 4940d2ada2 secur32: Default to building with GnuTLS support on macOS, if present.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-18 16:48:48 +02:00
Hans Leidekker cae161389b secur32: Translate errors from push/pull callbacks.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51192
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-11 18:45:44 +02:00
Hans Leidekker fbd30fff03 secur32: Use CRT memory allocators.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Hans Leidekker 49dbde22bd secur32: Use wide character string literals.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Hans Leidekker 04c6862d3f secur32: Build with msvcrt.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Hans Leidekker 7d0889b747 secur32: Move Schannel support to a Unix library.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Hans Leidekker a84b02992b secur32: Use a pthread mutex in the macOS backend.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Hans Leidekker 4a45679f1a secur32: Use a reserved flag for the cached credentials hack.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-07 22:22:49 +02:00
Hans Leidekker 1565a12a55 secur32: Get rid of builtin NTLM support.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00