Commit Graph

398 Commits

Author SHA1 Message Date
Ken Thomases f7e598cfc8 secur32: Extract schan_imp_get_connection_info function. 2011-03-14 14:09:38 +01:00
Ken Thomases ccae072a3c secur32: Extract schan_imp_get_session_cipher_block_size function. 2011-03-14 14:09:32 +01:00
Ken Thomases 1b225a012e secur32: Move some GnuTLS-specific helper functions. 2011-03-14 14:09:27 +01:00
Ken Thomases 12195b32df secur32: Extract schan_imp_get_session_peer_certificate function. 2011-03-14 14:09:19 +01:00
Ken Thomases 9b85662fec secur32: Extract schan_imp_recv function. 2011-03-14 14:09:12 +01:00
Ken Thomases a5715ed625 secur32: Extract schan_imp_send function. 2011-03-14 14:09:03 +01:00
Ken Thomases 9942edacd4 secur32: Remove outdated comment that schannel is unimplemented. 2011-03-14 14:08:19 +01:00
Austin English 9c84bfa9a4 secur32/tests: Remove win9x hacks. 2011-03-01 13:21:58 +01:00
Austin English 1c659a5509 secur32/tests: Make sure return values are used (LLVM/Clang). 2011-02-11 14:49:41 +01:00
Austin English 7868edd86e secur32/tests: Don't check return values inside of if(0) (LLVM/Clang). 2011-02-10 10:28:00 -06:00
Austin English 22c1843e08 secur32/tests: Make sure a return value is used (LLVM/Clang). 2011-02-09 09:29:13 -06:00
Ken Thomases cf2de431ac secur32/tests: Fix copy/paste error in test message ("first" -> "third"). 2011-01-21 12:25:06 +01:00
Aric Stewart fe05a73042 secur32/tests: Skip test on failure to acquire cred_handle. 2010-12-02 18:57:57 +01:00
Juan Lang 30435a5951 secur32: Trace flags as hex values. 2010-10-22 12:03:45 +02:00
Alexandre Julliard 81b8ee863e makefiles: Add a standard header for all makefiles to replace the common variable initializations. 2010-09-19 12:36:48 +02:00
Piotr Caban ab52186086 secur32: Prevent schannel tests from crashing on Windows NT. 2010-09-18 13:09:33 +02:00
Piotr Caban cdf8d455c2 secur32: Handle extra data in schan_InitializeSecurityContextW. 2010-09-18 13:05:30 +02:00
Mikko Rasa f2377e8981 secur32: Add some more schannel tests. 2010-09-15 16:36:45 -05:00
Mikko Rasa 506af9205d secur32: Fill a SECBUFFER_MISSING buffer if the message is not complete. 2010-09-15 16:36:17 -05:00
Mikko Rasa b335e94788 secur32: Only process full TLS frames in schan_DecryptMessage. 2010-09-15 16:36:11 -05:00
Mikko Rasa 149ffe130f secur32: Fill header and trailer buffers in schan_DecryptMessage. 2010-09-15 16:36:01 -05:00
Mikko Rasa b424b3431e secur32: Validate buffers passed to schan_DecryptMessage. 2010-09-15 16:35:51 -05:00
Alexandre Julliard b86d515ed6 dlls: Remove explicit imports of kernel32 and ntdll. 2010-07-21 17:38:36 +02:00
Michael Stefaniuc 24592a7a62 secur32: Avoid using long. 2010-05-12 13:44:40 +02:00
Kai Blin 9dd206d28e secur32: Use NTLM2 instead of NTLMv2.
In the current code NTLMv2 is used when talking about second generation
NTLM crypto algorithms. Most other publiations call this NTLM2, and use
NTLMv2 to describe a different crypto handshake that can be used by
either NTLM1 or NTLM2 crypto.
2010-04-19 14:56:12 +02:00
Alexandre Julliard 43a98ecb21 secur32: Avoid using a pointer difference in a trace. 2010-04-09 16:14:07 +02:00
Alexandre Julliard bef5645eb1 makefiles: Remove the no longer needed explicit separators for dependencies. 2010-03-16 13:28:19 +01:00
Alexandre Julliard 6164ce2d82 makefiles: Use the standard C_SRCS variable as the list of test files.
This enables it to be auto-updated by make_makefiles.
2010-02-22 10:47:11 +01:00
Juan Lang 7c3b9a1551 secur32: Report an error if libgnutls isn't found. 2010-01-11 12:54:23 -06:00
Rob Shearman 697955c922 secur32: Don't allocate context handle in wrapper InitializeSecurityContextA/W if it is the same as the handle passed into the function. 2009-12-30 13:40:35 +01:00
Rob Shearman 1346834605 secur32: Fix memory leaks in ntlm_InitializeSecurityContextW. 2009-12-30 13:40:31 +01:00
Rob Shearman 693433a3f2 secur32: Simplify memory management by not allocating memory for the CredHandle and CtxtHandle pointers.
Instead store the handles directly in the SspiData structure and pass
the addresses of these into SSPI functions.
2009-12-30 13:40:25 +01:00
Rob Shearman 5f01280edf secur32: Fix memory leaks in tests. 2009-12-30 13:40:17 +01:00
Kai Blin 9a81b032c4 secur32: Pretend the NTLM provider also does Negotiate.
We had to enable the Negotiate provider a while back so programs that expected 
that provider to be present would be happy. This broke programs that expect a 
Negotiate provider to actually do something if it is present. This fix works 
around that new issue by thunking all calls to Negotiate to NTLM.
2009-12-30 13:31:12 +01:00
Hans Leidekker 44f9595454 secur32/tests: Fix a couple of memory leaks.
Found by Valgrind.
2009-12-21 15:01:24 +01:00
Lei Zhang c89211336b secur32: Fix memory leak in SECUR32_addPackages. 2009-12-17 13:09:49 +01:00
Rob Shearman 3cd88cfab3 secur32: Fix memory leak in NTLM's FreeCredentialsHandle. 2009-12-14 12:04:05 +01:00
Hans Leidekker aeb161f13f secur32: Handle EOF from gnutls_record_recv. 2009-11-19 11:50:40 +01:00
Rob Shearman f6c9c72e21 secur32: Output extra data in NTLM sign & seal test to diagnose failures seen on some Windows machines. 2009-11-09 19:38:58 +01:00
Kai Blin e987ec4299 secur32: Use empty credentials when cached creds fail. 2009-11-09 19:38:00 +01:00
Henri Verbeet 3e96881e4c secur32: Don't bother zeroing the handle table in SECUR32_initSchannelSP().
Handles are initialized when they're allocated.
2009-10-15 12:06:18 +02:00
Henri Verbeet 226519efbc secur32: Don't try to cleanup uninitialized handles in SECUR32_deinitSchannelSP(). 2009-10-15 12:06:18 +02:00
Henri Verbeet 5b47904231 secur32: Recognize the ARC4 cipher in schannel_get_cipher_algid(). 2009-10-15 12:06:18 +02:00
Ge van Geldorp 43a28649c3 secur32/tests: Add acceptable error code for Win7 ntlm test. 2009-10-06 12:00:32 +02:00
Hans Leidekker 8bb68933ea secur32: Test passing null authentication data to AcquireCredentialsHandle. 2009-10-06 11:58:19 +02:00
Paul Vriens 7b3213fd65 secur32/tests: Skip some tests on WinMe to avoid a crash. 2009-10-02 11:52:12 +02:00
Dylan Smith fd3c8335fd secur32: Free schannel handle table.
The table is initialized on process attach, and should be freed on process
detach (which is where SECUR32_deinitSchannelSP gets called).
2009-09-28 13:31:27 +02:00
Dylan Smith fdcfbe21c3 secur32: Remove redendant call to gnutls_certificate_get_peers.
Two identical calls are made with the same parameters, and there are no
documented side effects of this function, so I removed one of them.
2009-09-28 13:31:18 +02:00
Kai Blin e6ac20e814 secur32: Revert "secur32: Work around ntlm_auth in Samba 3.0.28a being broken for cached credentials".
This reverts commit 7788c8ed0d, as well
as commit ec443be738. Due to erroneous
user input, these commits actually broke more than they fixed.
2009-08-12 12:51:02 +02:00
Kai Blin dfb2b429a0 secur32: Load Negotiate provider again. 2009-08-12 12:50:03 +02:00
Juan Lang 15512454fb secur32: Implement QueryContextAttributes for SECPKG_ATTR_CONNECTION_INFO. 2009-08-10 13:08:54 +02:00
Juan Lang 570c57ac95 secur32: Trace values of SCHANNEL_CRED structure. 2009-08-07 15:27:24 +02:00
Juan Lang 5ee34ea870 secur32: Implement QueryContextAttributes for SECPKG_ATTR_REMOTE_CERT_CONTEXT. 2009-08-06 12:01:41 +02:00
Juan Lang 3a493d7782 secur32: Sanity check handle index before indexing table. 2009-08-06 12:01:30 +02:00
Alexandre Julliard a6b05ea96c secur32: Avoid the close-on-exec race with pipe() on kernels that support pipe2(). 2009-07-01 12:14:08 +02:00
Kai Blin 66b6415193 secur32: Don't return STATUS_SUCCESS from LsaGetLogonSessionData stub. 2009-06-03 15:34:31 +02:00
Henri Verbeet a1465ba45f secur32: Initialize cbBuffer to 0 for NULL buffers.
This prevents schan_resize_current_buffer() from thinking there's a buffer.
2009-05-25 11:23:24 +02:00
Kai Blin ec443be738 secur32: Don't try to use ntlm_auth --use-cred-cache.
If ntlm_auth actually uses the cred cache, it will not give a session key.
As the Wine NTLM code depends on the session key to do transport crypto, don't
attempt to use the winbind cred cache.

This completely reverts my attempted fix 7788c8ed and also parts of Rob's
888a8e27 and 8a2125f9. It does not affect the code using wine's own credential
cache.
2009-05-20 13:34:16 +02:00
Austin English 07c214170d secur32/tests: Sign compare fixes. 2009-05-11 12:47:48 +02:00
Ge van Geldorp 74dba4e602 secur32/tests: Fix GetUserNameEx() tests. 2009-04-14 15:20:30 -05:00
Ge van Geldorp d31bb3f08d secur32: Implement more GetUserNameEx() formats. 2009-04-14 15:20:30 -05:00
Kai Blin 7788c8ed0d secur32: Work around ntlm_auth in Samba 3.0.28a being broken for cached credentials.
Samba 3.0.28a (as shipped with Ubuntu 8.04) seems to break when using
cached credentials backed by winbindd, returning a BH error in our test
if we still need to provide a password. Handle this and report a more
correct error.
2009-04-14 11:28:34 -05:00
Paul Vriens 825354afe6 secur32/tests: Document some crashes on Windows. 2009-04-09 16:12:59 +02:00
Ge van Geldorp c98513f9c8 secur32/tests: Add simple tests for GetUserNameExA/W(). 2009-04-07 14:21:08 +02:00
Ge van Geldorp dcb3e52e2d secur32: Implement GetUserNameEx(NameSamCompatible). 2009-04-07 14:21:01 +02:00
Francois Gouget c3aa03d244 secur32/tests: Use win_skip() to skip over unimplemented functionality. 2009-02-23 12:21:28 +01:00
Alexandre Julliard 21a7b21b65 secur32: Properly initialize the helper structure when fork support is missing. 2009-02-16 11:53:22 +01:00
Juan Lang b9ae777d96 secur32: Fix a handful of test failures on Win9x. 2009-02-04 12:24:45 +01:00
Andrew Talbot 247b7c5a83 secur32: Declare a function static. 2009-01-26 15:48:48 +01:00
Michael Stefaniuc e01ae46cac secur32: Remove superfluous pointer casts. 2009-01-22 12:04:52 +01:00
Michael Stefaniuc 230fb06d2e include: Change the rest of sspi.h to use LONG/ULONG for Win64 compatibility. 2009-01-06 12:44:04 +01:00
Michael Stefaniuc 57ab0cd9a6 include: sspi.h: Use the Win types as per MSDN.
This improves the Win64 compatibility.
2009-01-06 12:43:46 +01:00
Henri Verbeet e4505389ad secur32: Implement schannel DecryptMessage(). 2008-12-29 11:48:42 +01:00
Henri Verbeet 3954c4ec65 secur32: Implement schannel EncryptMessage(). 2008-12-29 11:48:35 +01:00
Henri Verbeet 95fd876266 secur32: Handle SECPKG_ATTR_STREAM_SIZES in schan_QueryContextAttributesW(). 2008-12-29 11:48:27 +01:00
Henri Verbeet 3c114a88ca secur32: Add stubs for schannel QueryContextAttributesA() and QueryContextAttributesW(). 2008-12-29 11:48:18 +01:00
Henri Verbeet 24c5e6edbf secur32: Dump the buffer descs in schan_InitializeSecurityContextW(). 2008-12-29 11:48:12 +01:00
Henri Verbeet 7bf267624d secur32: Try an EMPTY buffer if we can't find one of type TOKEN. 2008-12-29 11:48:06 +01:00
Alexandre Julliard 866240d4fd secur32: Check for lack of fork() support. 2008-12-22 18:04:39 +01:00
Andrew Talbot f397252071 secur32: Sign-compare warning fix. 2008-11-10 11:15:07 +01:00
Henri Verbeet e00e5a37e2 secur32: Implement schannel InitializeSecurityContextW. 2008-10-20 12:23:08 +02:00
Henri Verbeet e0e9195c81 secur32: Improve error handling for gnutls_global_init(). 2008-10-20 12:22:51 +02:00
Henri Verbeet 60435135f9 secur32: Don't leak the credentials handle when pgnutls_certificate_allocate_credentials() fails. 2008-10-20 12:22:27 +02:00
Henri Verbeet f6129d7d35 secur32: Don't make the pBuffer parameter to schan_QueryCredentialsAttributes() const. 2008-10-20 12:22:22 +02:00
Henri Verbeet 420cb678e1 secur32: Forward schannel InitializeSecurityContextA to InitializeSecurityContextW. 2008-10-07 12:10:23 +02:00
Henri Verbeet 937488c298 secur32: Improve error handling for gnutls_certificate_allocate_credentials(). 2008-10-07 12:10:07 +02:00
Henri Verbeet 79d88ffe56 secur32: Use ~0UL instead of -1 for invalid schannel handles. 2008-10-07 12:09:50 +02:00
Kai Blin ab05d35c6d secur32: Make GetComputerObjectName(A|W) tests work on win2k3 domains. 2008-09-29 17:23:30 -05:00
Juan Lang b95e146ccb secur32: Fix test failure with neither gnutls nor ntlm_auth available. 2008-09-29 17:23:23 -05:00
Francois Gouget 975b582763 secur32: Fix compilation with GNU TLS 1.0.16. 2008-09-24 13:12:19 +02:00
James Hawkins 4a0b67d72a secur32: Fix a failing test in win95. 2008-09-24 13:12:09 +02:00
Henri Verbeet 74539728b9 secur32: Allow gnutls debug output to be shown. 2008-09-23 14:03:18 +02:00
Henri Verbeet fde1e003fa secur32: Allocate schannel client credentials. 2008-09-23 14:03:18 +02:00
Henri Verbeet 7176dc261d secur32: Basic implementation of schannel AcquireCredentialsHandle/FreeCredentialsHandle.
All this does so far is create a handle and store the credential type in there.
2008-09-23 14:03:18 +02:00
Henri Verbeet 874c9ef6c7 secur32: Require gnutls for schannel. 2008-09-23 14:03:11 +02:00
Henri Verbeet 4ac3fe7f89 secur32: Skip schannel tests if schannel is unavailable. 2008-09-23 13:47:32 +02:00
Marcus Meissner 73b16d47ad secur32: Fixed size passed to GetComputerNameExW. 2008-09-15 11:43:37 +02:00
James Hawkins 852b367361 secur32: Fix two failing tests in win2k. 2008-09-11 11:49:45 +02:00
Reece Dunn f14fe767b3 secur32: Fixed the logic on some of the schannel tests. 2008-09-08 14:08:35 +02:00
Reece Dunn c718981a19 secur32: Fixed the schannel tests on Vista. 2008-09-08 14:08:30 +02:00
H. Verbeet af96a43ce9 secur32: Reserved3 / Reserved4 are actually EncryptMessage / DecryptMessage. 2008-08-20 10:26:56 +02:00
Reece Dunn 922414b60a secur32: Fix the schannel tests crashing on Vista. 2008-08-01 12:22:43 +02:00
Reece Dunn e413bbeea2 secur32: Fix the ntlm tests crashing on Vista. 2008-08-01 12:22:36 +02:00
Kai Blin 84935f5ce0 secur32: Fix GetComputerObjectName tests for domain members.
At least for XP domain members, all EXTENDED_NAME_FORMATS apart from
NameSamCompatible return ERROR_ACCESS_DENIED. Given that the function
returns an error for all formats on non-members, just ignore
ERROR_ACCESS_DENIED as well.
2008-07-16 17:52:40 +02:00
Francois Gouget dbaec0a101 Assorted spelling fixes. 2008-07-10 13:40:15 +02:00
Zhangrong Huang d42a601b52 secur32: Allow loading external schannel.dll. 2008-07-03 13:08:18 +02:00
Alistair Leslie-Hughes e53e82bf12 secur32: Fix crash under win98. 2008-06-23 19:58:10 +02:00
Dan Kegel 06abaaf218 secur32/tests: Don't free if not allocated. 2008-06-04 12:55:42 +02:00
James Hawkins 6848da72d9 secur32: Fix a few tests that fail in win2k3. 2008-05-22 11:31:06 +02:00
Andrew Talbot 140c0423f5 secur32: Memory allocation size fix. 2008-05-13 10:40:03 +02:00
Kai Blin 3da466a9f7 secur32: Fix ntlm tests on Vista. 2008-05-07 17:48:16 +02:00
Kai Blin 2e04c18cf4 secur32: Remove test for sft->Reserved8 field.
This seems to be set on Win98.
2008-05-05 21:02:08 +02:00
Kai Blin bee29a6c2e secur32: Don't call waitpid() in dispatcher.
As Wine ignores SIGCHLD, waitpid() works on Linux only by accident. On
FreeBSD it doesn't work.
2008-05-02 11:24:32 +02:00
Andrew Talbot 49939ed544 secur32: Remove unused variables. 2008-04-25 11:28:43 +02:00
Andrew Talbot 599f58cc7c secur32: Assign to structs instead of using memcpy. 2008-03-17 11:41:23 +01:00
Jacek Caban 87368bb623 secur32: Improve SECPKG_ATTR_CIPHER_STRENGTHS stub. 2008-03-12 19:20:33 +01:00
Jacek Caban d11e30e484 secur32: Fixed dynamic loading in schannel test. 2008-03-12 19:20:27 +01:00
Rob Shearman 088ae3b81c secur32: Fix ntlm_GetCachedCredential to not call strlenW on a NULL pointer.
pszHost should just be set to pszTargetName if pszTargetName doesn't
contain any other information.
2008-03-10 19:12:54 +01:00
Rob Shearman 48000893f9 makefiles: Simplify the use of the IMPORTLIB variable in the DLL makefiles.
Only specify the root to keep platform-specifics out of the individual 
DLL makefiles.
2008-03-04 20:55:01 +01:00
Rob Shearman 0d2a623150 secur32: Initialise more pointers in helper to NULL.
This is to avoid calling HeapFree on random pointers when 
DeleteSecurityContext is called on a context that hasn't had a second 
InitializeSecurityContext called on it, which would otherwise intialise 
those pointers.
2008-02-04 11:10:54 +01:00
Rob Shearman 8a2125f932 secur32: Try to retrive credentials by using the credential manager to retrieve credentials saved for the target server in InitializeContextHandleW, if possible. 2008-02-04 11:10:50 +01:00
Rob Shearman 506ba701bb secur32: If using cached credentials failed in InitializeSecurityContext then fail with SEC_E_NO_CREDENTIALS instead of carrying on with a blank password. 2008-02-04 11:10:05 +01:00
Rob Shearman 72ffc3fad9 secur32: Move the detection of NULL credentials from AcquireCredentialsHandle to InitializeSecurityContext.
Only use cached credentials if the credentials were NULL. Don't pass a 
domain into ntlm_auth when using cached credentials as 
ntlm_auth/winbindd should be able to figure that out.
2008-02-04 11:10:01 +01:00
Andrew Talbot e4ca5c5647 secur32: Remove unneeded casts. 2008-01-21 11:38:45 +01:00
Zhangrong Huang 26bc15a811 secur32: Fix possible crash while loading SSP providers from registry. 2007-12-21 13:46:15 +01:00
Michael Stefaniuc 8537c46c93 secur32/tests: InitFunctionPtrs() needs to use the global crypt32dll variable. 2007-12-19 12:19:00 +01:00
Francois Gouget 31bcb3f6f4 secur32/tests: Dynamically load various APIs and don't link with crypt32.dll to make the test run on Windows 95. 2007-12-18 12:32:55 +01:00
Alexandre Julliard ad9396302d Removed some unneeded imports. 2007-12-06 21:24:24 +01:00
Michael Stefaniuc d117938f7a secur32: Remove the SECUR32_ALLOC() macro around HeapAlloc(). 2007-12-06 12:07:12 +01:00
Kai Blin fdfa760c85 secur32: ntlm_auth returns BH if the connection to winbindd fails. 2007-10-09 12:34:35 +02:00
Andrew Talbot 9b1082ef3b secur32: Fix some memory leaks. 2007-10-05 10:26:20 +02:00
Kai Blin 5afd341aec secur32: Remove hardcoded assumption that the SECBUFFER_DATA is always at index 1 for en/decrypting. 2007-10-02 11:42:10 +02:00
Kai Blin b53e1ffa47 secur32: Implement LsaRegisterLogonProcess stub. 2007-08-30 20:06:56 +02:00
Kai Blin 6efe40b3a6 secur32: Implement LsaLogonUser stub. 2007-08-30 11:57:18 +02:00
Kai Blin 0c6e2c20bd secur32: Implement LsaGetLogonSessionData stub. 2007-08-30 11:57:18 +02:00
Kai Blin 8942443a42 secur32: Implement LsaFreeReturnBuffer stub. 2007-08-30 11:57:18 +02:00
Kai Blin d1339bc0fa secur32: Implement LsaEnumerateLogonSessions stub. 2007-08-30 11:57:18 +02:00
Kai Blin ae06588d9b secur32: Implement LsaLookupAuthenticationPackage stub. 2007-08-30 11:57:18 +02:00
Kai Blin 78b047e4e4 secur32: Give a hint where to find ntlm_auth. 2007-08-30 11:57:18 +02:00
Alexandre Julliard 4cda5ca96c secur32: Set the close on exec flag on the ntlm_auth pipes. 2007-08-27 18:27:59 +02:00
Andrew Talbot d01c8407a9 secur32: Constify some variables. 2007-08-27 12:01:47 +02:00
Paul Vriens 22e48388d5 secur32/tests: Run tests on win95 again. 2007-08-16 11:08:09 +02:00
Rob Shearman 610a3b1ad2 secur32: Remove valid_session_key from NegoHelper since it is only ever set and not read. 2007-08-08 15:32:00 +02:00
Rob Shearman 888a8e27b8 secur32: Split the NTLM credential and context handles into separate objects.
This prevents races with two threads using the helper object at the same
time on two different context handles, eliminates the need to free the
credential handle after freeing the context handles and also prevents a
crash caused by not clearing session_key in DeleteSecurityContext.
2007-08-08 15:32:00 +02:00
Paul Vriens fe7e83fd0c secur32/tests: Use skip when functions are not available. 2007-07-05 19:54:38 +02:00
Rob Shearman 98820d4ef4 secur32: Add tests for multiple use of a credential handle. 2007-07-04 13:42:44 +02:00
Rob Shearman 2ede1370d3 secur32: Don't free the password in InitializeSecurityContextW to enable the credentials handle to be re-used in further InitializeSecurityContextW calls. 2007-07-03 12:29:19 +02:00
Kai Blin c1e724bc88 secur32: Downgrade WARN to TRACE, fix another TRACE. 2007-05-29 11:54:22 +02:00
Rob Shearman aa1be492cd secur32: Fix NTLM's InitializeSecurityContextA/W to be flexible with the index of the token buffer in both the input and output buffer descriptions. 2007-05-25 20:17:11 +02:00
Rob Shearman 4d275bcf10 secur32: Don't set the output buffer type in NTLM's IntializeSecurityContextA/W. 2007-05-25 20:16:58 +02:00