[LSALIB][SECUR32]
authorEric Kohl <eric.kohl@reactos.org>
Wed, 21 Sep 2016 06:19:22 +0000 (06:19 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Wed, 21 Sep 2016 06:19:22 +0000 (06:19 +0000)
- Move LsaConnectUntrusted() from sdk/lib/lsalib/lsa.c to dll/win32/secur32/lsalpc.c as it is not exported from ntoskrnl.
- Remove obsolete code from lsalib.

svn path=/trunk/; revision=72754

reactos/dll/win32/secur32/lsalpc.c
reactos/sdk/lib/lsalib/lsa.c

index 882243e..ac474b2 100644 (file)
@@ -103,6 +103,62 @@ LsapOpenLsaPort(VOID)
 
 /* PUBLIC FUNCTIONS **********************************************************/
 
+/*
+ * @implemented
+ */
+NTSTATUS
+NTAPI
+LsaConnectUntrusted(
+    OUT PHANDLE LsaHandle)
+{
+    UNICODE_STRING PortName;
+    SECURITY_QUALITY_OF_SERVICE SecurityQos;
+    LSA_CONNECTION_INFO ConnectInfo;
+    ULONG ConnectInfoLength = sizeof(ConnectInfo);
+    NTSTATUS Status;
+
+    TRACE("LsaConnectUntrusted(%p)\n", LsaHandle);
+
+    // TODO: Wait on L"\\SECURITY\\LSA_AUTHENTICATION_INITIALIZED" event
+    // for the LSA server to be ready, and because we are untrusted,
+    // we may need to impersonate ourselves before!
+
+    RtlInitUnicodeString(&PortName,
+                         L"\\LsaAuthenticationPort");
+
+    SecurityQos.Length              = sizeof(SecurityQos);
+    SecurityQos.ImpersonationLevel  = SecurityIdentification;
+    SecurityQos.ContextTrackingMode = SECURITY_DYNAMIC_TRACKING;
+    SecurityQos.EffectiveOnly       = TRUE;
+
+    RtlZeroMemory(&ConnectInfo,
+                  ConnectInfoLength);
+
+    ConnectInfo.CreateContext = TRUE;
+
+    Status = NtConnectPort(LsaHandle,
+                           &PortName,
+                           &SecurityQos,
+                           NULL,
+                           NULL,
+                           NULL,
+                           &ConnectInfo,
+                           &ConnectInfoLength);
+    if (!NT_SUCCESS(Status))
+    {
+        ERR("NtConnectPort failed (Status 0x%08lx)\n", Status);
+        return Status;
+    }
+
+    if (!NT_SUCCESS(ConnectInfo.Status))
+    {
+        ERR("ConnectInfo.Status: 0x%08lx\n", ConnectInfo.Status);
+    }
+
+    return ConnectInfo.Status;
+}
+
+
 /*
  * @implemented
  */
index 932abb3..935f32b 100644 (file)
 #include <ndk/mmfuncs.h>
 #include <ndk/rtlfuncs.h>
 #include <ndk/obfuncs.h>
-// #include <psdk/ntsecapi.h>
 #include <lsass/lsass.h>
 
 #define NDEBUG
 #include <debug.h>
 
-/* GLOBALS *******************************************************************/
-
-// FIXME: Do we really need this?!
-#if !defined(__NTOSKRNL__) && !defined(_NTOSKRNL_) && !defined(_NTSYSTEM_)
-extern HANDLE Secur32Heap;
-#endif
-
 /* FUNCTIONS *****************************************************************/
 
-/* This API is not defined and exported by NTOSKRNL */
-#if !defined(__NTOSKRNL__) && !defined(_NTOSKRNL_) && !defined(_NTSYSTEM_)
-/*
- * @implemented
- */
-NTSTATUS
-NTAPI
-LsaConnectUntrusted(OUT PHANDLE LsaHandle)
-{
-    NTSTATUS Status;
-    UNICODE_STRING PortName; // = RTL_CONSTANT_STRING(L"\\LsaAuthenticationPort");
-    SECURITY_QUALITY_OF_SERVICE SecurityQos;
-    LSA_CONNECTION_INFO ConnectInfo;
-    ULONG ConnectInfoLength = sizeof(ConnectInfo);
-
-    DPRINT("LsaConnectUntrusted(%p)\n", LsaHandle);
-
-    // TODO: Wait on L"\\SECURITY\\LSA_AUTHENTICATION_INITIALIZED" event
-    // for the LSA server to be ready, and because we are untrusted,
-    // we may need to impersonate ourselves before!
-
-    RtlInitUnicodeString(&PortName, L"\\LsaAuthenticationPort");
-
-    SecurityQos.Length              = sizeof(SecurityQos);
-    SecurityQos.ImpersonationLevel  = SecurityIdentification;
-    SecurityQos.ContextTrackingMode = SECURITY_DYNAMIC_TRACKING;
-    SecurityQos.EffectiveOnly       = TRUE;
-
-    RtlZeroMemory(&ConnectInfo,
-                  ConnectInfoLength);
-
-    ConnectInfo.CreateContext = TRUE;
-
-    Status = ZwConnectPort(LsaHandle,
-                           &PortName,
-                           &SecurityQos,
-                           NULL,
-                           NULL,
-                           NULL,
-                           &ConnectInfo,
-                           &ConnectInfoLength);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1("ZwConnectPort failed (Status 0x%08lx)\n", Status);
-        return Status;
-    }
-
-    if (!NT_SUCCESS(ConnectInfo.Status))
-    {
-        DPRINT1("ConnectInfo.Status: 0x%08lx\n", ConnectInfo.Status);
-    }
-
-    return ConnectInfo.Status;
-}
-#endif
-
 /*
  * @implemented
  */