diff --git a/dll/win32/secur32/CMakeLists.txt b/dll/win32/secur32/CMakeLists.txt index 907919824fc..3db2d522a65 100644 --- a/dll/win32/secur32/CMakeLists.txt +++ b/dll/win32/secur32/CMakeLists.txt @@ -9,6 +9,7 @@ list(APPEND SOURCE secext.c sspi.c secur32.rc + stubs.c ${CMAKE_CURRENT_BINARY_DIR}/secur32_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/secur32.def ) diff --git a/dll/win32/secur32/secur32.spec b/dll/win32/secur32/secur32.spec index 3a419fa0584..8ccc0ddd7c0 100644 --- a/dll/win32/secur32/secur32.spec +++ b/dll/win32/secur32/secur32.spec @@ -1,17 +1,10 @@ -@ stdcall LsaRegisterLogonProcess(ptr ptr ptr) -@ stdcall LsaLogonUser(ptr ptr long long ptr long ptr ptr ptr ptr ptr ptr ptr ptr) -@ stdcall LsaDeregisterLogonProcess(long) -@ stdcall LsaConnectUntrusted(long) -@ stdcall LsaLookupAuthenticationPackage(ptr ptr ptr) -@ stdcall LsaFreeReturnBuffer(ptr) -@ stdcall LsaCallAuthenticationPackage(long long ptr long ptr ptr ptr) @ stdcall AcceptSecurityContext(ptr ptr ptr long long ptr ptr ptr ptr) @ stdcall AcquireCredentialsHandleA(str str long ptr ptr ptr ptr ptr ptr) @ stdcall AcquireCredentialsHandleW(wstr wstr long ptr ptr ptr ptr ptr ptr) @ stdcall AddCredentialsA(ptr str str long ptr ptr ptr ptr) @ stdcall AddCredentialsW(ptr wstr wstr long ptr ptr ptr ptr) -@ stub AddSecurityPackageA -@ stub AddSecurityPackageW +@ stdcall AddSecurityPackageA(str ptr) +@ stdcall AddSecurityPackageW(wstr ptr) @ stdcall ApplyControlTokenA(ptr ptr) @ stdcall ApplyControlToken(ptr ptr) ApplyControlTokenW @ stdcall CompleteAuthToken(ptr ptr) @@ -19,8 +12,8 @@ @ stub CredUnmarshalTargetInfo @ stdcall DecryptMessage(ptr ptr long ptr) @ stdcall DeleteSecurityContext(ptr) -@ stub DeleteSecurityPackageA -@ stub DeleteSecurityPackageW +@ stdcall DeleteSecurityPackageA(str) +@ stdcall DeleteSecurityPackageW(wstr) @ stdcall EncryptMessage(ptr long ptr long) @ stdcall EnumerateSecurityPackagesA(ptr ptr) @ stdcall EnumerateSecurityPackagesW(ptr ptr) @@ -29,7 +22,7 @@ @ stdcall FreeCredentialsHandle(ptr) @ stdcall GetComputerObjectNameA(long ptr ptr) @ stdcall GetComputerObjectNameW(long ptr ptr) -@ stub GetSecurityUserInfo +@ stdcall GetSecurityUserInfo(ptr long ptr) @ stdcall GetUserNameExA(long ptr ptr) @ stdcall GetUserNameExW(long ptr ptr) @ stdcall ImpersonateSecurityContext(ptr) @@ -39,8 +32,15 @@ @ stdcall InitSecurityInterfaceW() @ stdcall InitializeSecurityContextA(ptr ptr str long long long ptr long ptr ptr ptr ptr) @ stdcall InitializeSecurityContextW(ptr ptr wstr long long long ptr long ptr ptr ptr ptr) +@ stdcall LsaCallAuthenticationPackage(long long ptr long ptr ptr ptr) +@ stdcall LsaConnectUntrusted(long) +@ stdcall LsaDeregisterLogonProcess(long) @ stdcall LsaEnumerateLogonSessions(ptr ptr) +@ stdcall LsaFreeReturnBuffer(ptr) @ stdcall LsaGetLogonSessionData(ptr ptr) +@ stdcall LsaLogonUser(ptr ptr long long ptr long ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall LsaLookupAuthenticationPackage(ptr ptr ptr) +@ stdcall LsaRegisterLogonProcess(ptr ptr ptr) @ stdcall LsaRegisterPolicyChangeNotification(long ptr) @ stdcall LsaUnregisterPolicyChangeNotification(long ptr) @ stdcall MakeSignature(ptr long ptr long) @@ -64,7 +64,7 @@ @ stdcall SealMessage(ptr long ptr long) EncryptMessage @ stub SecCacheSspiPackages @ stub SecDeleteUserModeContext -@ stub SecGetLocaleSpecificEncryptionRules +@ stub SecGetLocaleSpecificEncryptionRules # not on win32k3 x64 @ stub SecInitUserModeContext @ stub SecpFreeMemory @ stub SecpTranslateName diff --git a/dll/win32/secur32/stubs.c b/dll/win32/secur32/stubs.c new file mode 100644 index 00000000000..e7003bc7eed --- /dev/null +++ b/dll/win32/secur32/stubs.c @@ -0,0 +1,56 @@ + + +#include + +#define NDEBUG +#include + +#define SEC_ENTRY WINAPI +#define STATUS_UNSUCCESSFUL ((SECURITY_STATUS)0x80000001) + +typedef LONG SECURITY_STATUS; +typedef PVOID PSECURITY_PACKAGE_OPTIONS, PSecurityUserData; + +SECURITY_STATUS +SEC_ENTRY +DeleteSecurityPackageA(LPSTR pszPackageName) +{ + UNIMPLEMENTED; + return STATUS_UNSUCCESSFUL; +} + +SECURITY_STATUS +SEC_ENTRY +DeleteSecurityPackageW(LPWSTR pszPackageName) +{ + UNIMPLEMENTED; + return STATUS_UNSUCCESSFUL; +} + +SECURITY_STATUS +SEC_ENTRY +AddSecurityPackageA(LPSTR pszPackageName, PSECURITY_PACKAGE_OPTIONS pOptions) +{ + UNIMPLEMENTED; + return STATUS_UNSUCCESSFUL; +} + +SECURITY_STATUS +SEC_ENTRY +AddSecurityPackageW(LPWSTR pszPackageName, PSECURITY_PACKAGE_OPTIONS pOptions) +{ + UNIMPLEMENTED; + return STATUS_UNSUCCESSFUL; +} + +SECURITY_STATUS +SEC_ENTRY +GetSecurityUserInfo( + PLUID LogonId, + ULONG Flags, + PSecurityUserData *UserInformation) +{ + UNIMPLEMENTED; + return STATUS_UNSUCCESSFUL; +} + diff --git a/dll/win32/security/CMakeLists.txt b/dll/win32/security/CMakeLists.txt index 749173a307b..2488293ab2a 100644 --- a/dll/win32/security/CMakeLists.txt +++ b/dll/win32/security/CMakeLists.txt @@ -6,12 +6,11 @@ spec2def(security.dll security.spec) list(APPEND SOURCE security.rc - ${CMAKE_CURRENT_BINARY_DIR}/security_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/security.def) add_library(security SHARED ${SOURCE}) set_entrypoint(security 0) -add_importlibs(security advapi32 ntdll kernel32) +add_importlibs(security secur32 advapi32 ntdll kernel32) add_cab_target(security 1) diff --git a/dll/win32/security/security.spec b/dll/win32/security/security.spec index 953b2b673b0..14dd922c580 100644 --- a/dll/win32/security/security.spec +++ b/dll/win32/security/security.spec @@ -1,48 +1,27 @@ -@ stdcall LsaRegisterLogonProcess(ptr ptr ptr) secur32.LsaRegisterLogonProcess -@ stdcall LsaLogonUser(ptr ptr long long ptr long ptr ptr ptr ptr ptr ptr ptr ptr) secur32.LsaLogonUser -@ stdcall LsaDeregisterLogonProcess(long) secur32.LsaDeregisterLogonProcess -@ stdcall LsaConnectUntrusted(long) secur32.LsaConnectUntrusted -@ stdcall LsaLookupAuthenticationPackage(ptr ptr ptr) SECUR32.LsaLookupAuthenticationPackage -@ stdcall LsaFreeReturnBuffer(ptr) SECUR32.LsaFreeReturnBuffer -@ stdcall LsaCallAuthenticationPackage(long long ptr long ptr ptr ptr) SECUR32.LsaCallAuthenticationPackage @ 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 AddCredentialsA(ptr str str long ptr ptr ptr ptr) SECUR32.AddCredentialsA -@ stdcall AddCredentialsW(ptr wstr wstr long ptr ptr ptr ptr) SECUR32.AddCredentialsW -@ stub AddSecurityPackageA # SECUR32.AddSecurityPackageA -@ stub AddSecurityPackageW # SECUR32.AddSecurityPackageW -@ stdcall ApplyControlTokenA(ptr ptr) SECUR32.ApplyControlTokenA -@ stdcall ApplyControlTokenW(ptr ptr) SECUR32.ApplyControlTokenW +@ stdcall AddSecurityPackageA(str ptr) SECUR32.AddSecurityPackageA +@ stdcall AddSecurityPackageW(wstr ptr) SECUR32.AddSecurityPackageW +@ stdcall ApplyControlToken(ptr ptr) SECUR32.ApplyControlToken @ stdcall CompleteAuthToken(ptr ptr) SECUR32.CompleteAuthToken -@ stub CredMarshalTargetInfo # SECUR32.CredMarshalTargetInfo -@ stub CredUnmarshalTargetInfo # SECUR32.CredUnmarshalTargetInfo @ stdcall DecryptMessage(ptr ptr long ptr) SECUR32.DecryptMessage @ stdcall DeleteSecurityContext(ptr) SECUR32.DeleteSecurityContext -@ stub DeleteSecurityPackageA # SECUR32.DeleteSecurityPackageA -@ stub DeleteSecurityPackageW # SECUR32.DeleteSecurityPackageW +@ stdcall DeleteSecurityPackageA(str) SECUR32.DeleteSecurityPackageA +@ stdcall DeleteSecurityPackageW(wstr) SECUR32.DeleteSecurityPackageW @ stdcall EncryptMessage(ptr long ptr long) SECUR32.EncryptMessage @ stdcall EnumerateSecurityPackagesA(ptr ptr) SECUR32.EnumerateSecurityPackagesA @ stdcall EnumerateSecurityPackagesW(ptr ptr) SECUR32.EnumerateSecurityPackagesW @ stdcall ExportSecurityContext(ptr long ptr ptr) SECUR32.ExportSecurityContext @ stdcall FreeContextBuffer(ptr) SECUR32.FreeContextBuffer @ stdcall FreeCredentialsHandle(ptr) SECUR32.FreeCredentialsHandle -@ stdcall GetComputerObjectNameA(long ptr ptr) SECUR32.GetComputerObjectNameA -@ stdcall GetComputerObjectNameW(long ptr ptr) SECUR32.GetComputerObjectNameW -@ stub GetSecurityUserInfo # SECUR32.GetSecurityUserInfo -@ stdcall GetUserNameExA(long ptr ptr) SECUR32.GetUserNameExA -@ stdcall GetUserNameExW(long ptr ptr) SECUR32.GetUserNameExW @ stdcall ImpersonateSecurityContext(ptr) SECUR32.ImpersonateSecurityContext @ stdcall ImportSecurityContextA(str ptr ptr ptr) SECUR32.ImportSecurityContextA @ stdcall ImportSecurityContextW(wstr ptr ptr ptr) SECUR32.ImportSecurityContextW -@ 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 LsaEnumerateLogonSessions(ptr ptr) SECUR32.LsaEnumerateLogonSessions -@ stdcall LsaGetLogonSessionData(ptr ptr) SECUR32.LsaGetLogonSessionData -@ stdcall LsaRegisterPolicyChangeNotification(long ptr) SECUR32.LsaRegisterPolicyChangeNotification -@ stdcall LsaUnregisterPolicyChangeNotification(long ptr) SECUR32.LsaUnregisterPolicyChangeNotification +@ stdcall InitSecurityInterfaceA() SECUR32.InitSecurityInterfaceA +@ stdcall InitSecurityInterfaceW() SECUR32.InitSecurityInterfaceW @ stdcall MakeSignature(ptr long ptr long) SECUR32.MakeSignature @ stdcall QueryContextAttributesA(ptr long ptr) SECUR32.QueryContextAttributesA @ stdcall QueryContextAttributesW(ptr long ptr) SECUR32.QueryContextAttributesW @@ -52,26 +31,7 @@ @ stdcall QuerySecurityPackageInfoA(str ptr) SECUR32.QuerySecurityPackageInfoA @ stdcall QuerySecurityPackageInfoW(wstr ptr) SECUR32.QuerySecurityPackageInfoW @ stdcall RevertSecurityContext(ptr) SECUR32.RevertSecurityContext -@ stub SaslAcceptSecurityContext # SECUR32.SaslAcceptSecurityContext -@ stub SaslEnumerateProfilesA # SECUR32.SaslEnumerateProfilesA -@ stub SaslEnumerateProfilesW # SECUR32.SaslEnumerateProfilesW -@ stub SaslGetProfilePackageA # SECUR32.SaslGetProfilePackageA -@ stub SaslGetProfilePackageW # SECUR32.SaslGetProfilePackageW -@ stub SaslIdentifyPackageA # SECUR32.SaslIdentifyPackageA -@ stub SaslIdentifyPackageW # SECUR32.SaslIdentifyPackageW -@ stub SaslInitializeSecurityContextA # SECUR32.SaslInitializeSecurityContextA -@ stub SaslInitializeSecurityContextW # SECUR32.SaslInitializeSecurityContextW @ stdcall SealMessage(ptr long ptr long) SECUR32.EncryptMessage -@ stub SecCacheSspiPackages # SECUR32.SecCacheSspiPackages -@ stub SecDeleteUserModeContext # SECUR32.SecDeleteUserModeContext -@ stub SecGetLocaleSpecificEncryptionRules # SECUR32.SecGetLocaleSpecificEncryptionRules -@ stub SecInitUserModeContext # SECUR32.SecInitUserModeContext -@ stub SecpFreeMemory # SECUR32.SecpFreeMemory -@ stub SecpTranslateName # SECUR32.SecpTranslateName -@ stub SecpTranslateNameEx # SECUR32.SecpTranslateNameEx -@ stub SetContextAttributesA # SECUR32.SetContextAttributesA -@ stub SetContextAttributesW #SECUR32.SetContextAttributesW -@ stdcall TranslateNameA(str long long ptr ptr) SECUR32.TranslateNameA -@ stdcall TranslateNameW(wstr long long ptr ptr) SECUR32.TranslateNameW @ stdcall UnsealMessage(ptr ptr long ptr) SECUR32.DecryptMessage @ stdcall VerifySignature(ptr ptr long ptr) SECUR32.VerifySignature +