diff --git a/Makefile.in b/Makefile.in index bc1d654d76..d4e743a3d2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -336,6 +336,7 @@ ALL_MAKEFILES = \ dlls/rsaenh/Makefile \ dlls/rsaenh/tests/Makefile \ dlls/sane.ds/Makefile \ + dlls/schannel/Makefile \ dlls/secur32/Makefile \ dlls/secur32/tests/Makefile \ dlls/security/Makefile \ @@ -670,6 +671,7 @@ dlls/rsabase/tests/Makefile: dlls/rsabase/tests/Makefile.in dlls/Maketest.rules dlls/rsaenh/Makefile: dlls/rsaenh/Makefile.in dlls/Makedll.rules dlls/rsaenh/tests/Makefile: dlls/rsaenh/tests/Makefile.in dlls/Maketest.rules dlls/sane.ds/Makefile: dlls/sane.ds/Makefile.in dlls/Makedll.rules +dlls/schannel/Makefile: dlls/schannel/Makefile.in dlls/Makedll.rules dlls/secur32/Makefile: dlls/secur32/Makefile.in dlls/Makedll.rules dlls/secur32/tests/Makefile: dlls/secur32/tests/Makefile.in dlls/Maketest.rules dlls/security/Makefile: dlls/security/Makefile.in dlls/Makedll.rules diff --git a/configure b/configure index c7023cfc7d..18faa4e93f 100755 --- a/configure +++ b/configure @@ -20803,6 +20803,8 @@ ac_config_files="$ac_config_files dlls/rsaenh/tests/Makefile" ac_config_files="$ac_config_files dlls/sane.ds/Makefile" +ac_config_files="$ac_config_files dlls/schannel/Makefile" + ac_config_files="$ac_config_files dlls/secur32/Makefile" ac_config_files="$ac_config_files dlls/secur32/tests/Makefile" @@ -21831,6 +21833,7 @@ do "dlls/rsaenh/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rsaenh/Makefile" ;; "dlls/rsaenh/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/rsaenh/tests/Makefile" ;; "dlls/sane.ds/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sane.ds/Makefile" ;; + "dlls/schannel/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/schannel/Makefile" ;; "dlls/secur32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/secur32/Makefile" ;; "dlls/secur32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/secur32/tests/Makefile" ;; "dlls/security/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/security/Makefile" ;; diff --git a/configure.ac b/configure.ac index 7c27c342fe..59257fdc32 100644 --- a/configure.ac +++ b/configure.ac @@ -1706,6 +1706,7 @@ AC_CONFIG_FILES([dlls/rsabase/tests/Makefile]) AC_CONFIG_FILES([dlls/rsaenh/Makefile]) AC_CONFIG_FILES([dlls/rsaenh/tests/Makefile]) AC_CONFIG_FILES([dlls/sane.ds/Makefile]) +AC_CONFIG_FILES([dlls/schannel/Makefile]) AC_CONFIG_FILES([dlls/secur32/Makefile]) AC_CONFIG_FILES([dlls/secur32/tests/Makefile]) AC_CONFIG_FILES([dlls/security/Makefile]) diff --git a/dlls/Makefile.in b/dlls/Makefile.in index 95c98d3e81..4c47aaef9f 100644 --- a/dlls/Makefile.in +++ b/dlls/Makefile.in @@ -149,6 +149,7 @@ BASEDIRS = \ rsabase \ rsaenh \ sane.ds \ + schannel \ secur32 \ security \ sensapi \ diff --git a/dlls/schannel/Makefile.in b/dlls/schannel/Makefile.in new file mode 100644 index 0000000000..bc67151d87 --- /dev/null +++ b/dlls/schannel/Makefile.in @@ -0,0 +1,13 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = schannel.dll +IMPORTS = secur32 kernel32 + +C_SRCS = \ + schannel_main.c + +@MAKE_DLL_RULES@ + +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/schannel/schannel.spec b/dlls/schannel/schannel.spec new file mode 100644 index 0000000000..7dd12fa3d0 --- /dev/null +++ b/dlls/schannel/schannel.spec @@ -0,0 +1,37 @@ +@ stdcall AcceptSecurityContext(ptr ptr ptr long long ptr ptr ptr ptr) secur32.AcceptSecurityContext +@ stdcall AcquireCredentialsHandleA(str str long ptr ptr ptr ptr ptr ptr) secur32.AcquireCredentialsHandleA +@ stdcall AcquireCredentialsHandleW(wstr wstr long ptr ptr ptr ptr ptr ptr) secur32.AcquireCredentialsHandleW +@ stdcall ApplyControlToken(ptr ptr) secur32.ApplyControlToken +@ stub CloseSslPerformanceData +@ stub CollectSslPerformanceData +@ stdcall CompleteAuthToken(ptr ptr) secur32.CompleteAuthToken +@ stdcall DeleteSecurityContext(ptr) secur32.DeleteSecurityContext +@ stdcall EnumerateSecurityPackagesA(ptr ptr) secur32.EnumerateSecurityPackagesA +@ stdcall EnumerateSecurityPackagesW(ptr ptr) secur32.EnumerateSecurityPackagesW +@ stdcall FreeContextBuffer(ptr) secur32.FreeContextBuffer +@ stdcall FreeCredentialsHandle(ptr) secur32.FreeCredentialsHandle +@ stdcall ImpersonateSecurityContext(ptr) secur32.ImpersonateSecurityContext +@ stdcall InitSecurityInterfaceA() secur32.InitSecurityInterfaceA +@ stdcall InitSecurityInterfaceW() secur32.InitSecurityInterfaceW +@ stdcall InitializeSecurityContextA(ptr ptr str long long long ptr long ptr ptr ptr ptr) secur32.InitializeSecurityContextA +@ stdcall InitializeSecurityContextW(ptr ptr wstr long long long ptr long ptr ptr ptr ptr) secur32.InitializeSecurityContextW +@ stdcall MakeSignature(ptr long ptr long) secur32.MakeSignature +@ stub OpenSslPerformanceData +@ stdcall QueryContextAttributesA(ptr long ptr) secur32.QueryContextAttributesA +@ stdcall QueryContextAttributesW(ptr long ptr) secur32.QueryContextAttributesW +@ stdcall QuerySecurityPackageInfoA(str ptr) secur32.QuerySecurityPackageInfoA +@ stdcall QuerySecurityPackageInfoW(wstr ptr) secur32.QuerySecurityPackageInfoW +@ stdcall RevertSecurityContext(ptr) secur32.RevertSecurityContext +@ stdcall SealMessage(ptr long ptr long) secur32.SealMessage +@ stub SpLsaModeInitialize +@ stub SpUserModeInitialize +@ stub SslCrackCertificate +@ stub SslEmptyCacheA +@ stub SslEmptyCacheW +@ stub SslFreeCertificate +@ stub SslGenerateKeyPair +@ stub SslGenerateRandomBits +@ stub SslGetMaximumKeySize +@ stub SslLoadCertificate +@ stdcall UnsealMessage(ptr ptr long ptr) secur32.UnsealMessage +@ stdcall VerifySignature(ptr ptr long ptr) secur32.VerifySignature diff --git a/dlls/schannel/schannel_main.c b/dlls/schannel/schannel_main.c new file mode 100644 index 0000000000..9889c5da43 --- /dev/null +++ b/dlls/schannel/schannel_main.c @@ -0,0 +1,40 @@ +/* + * SSL/TLS Security Library + * + * Copyright 2007 Rob Shearman, for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + +#include "windef.h" +#include "winbase.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(schannel); + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + TRACE("(0x%p, %d, %p)\n",hinstDLL,fdwReason,lpvReserved); + + if (fdwReason == DLL_WINE_PREATTACH) return FALSE; /* prefer native version */ + + if (fdwReason == DLL_PROCESS_ATTACH) + DisableThreadLibraryCalls(hinstDLL); + + return TRUE; +}