1 /* 2 * PROJECT: Authentication Package DLL 3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) 4 * PURPOSE: Header for lsa.c 5 * COPYRIGHT: Copyright 2019-2020 Andreas Maier <staubim@quantentunnel.de> 6 */ 7 8 #pragma once 9 10 NTSTATUS 11 NTAPI 12 SpInitialize( 13 _In_ ULONG_PTR PackageId, 14 _In_ PSECPKG_PARAMETERS Parameters, 15 _In_ PLSA_SECPKG_FUNCTION_TABLE FunctionTable); 16 17 NTSTATUS 18 NTAPI 19 LsaSpShutDown(VOID); 20 21 NTSTATUS 22 NTAPI 23 SpAcceptCredentials( 24 _In_ SECURITY_LOGON_TYPE LogonType, 25 _In_ PUNICODE_STRING AccountName, 26 _In_ PSECPKG_PRIMARY_CRED PrimaryCredentials, 27 _In_ PSECPKG_SUPPLEMENTAL_CRED SupplementalCredentials); 28 29 NTSTATUS 30 NTAPI 31 LsaSpAcquireCredentialsHandle( 32 _In_ PUNICODE_STRING PrincipalName, 33 _In_ ULONG CredentialUseFlags, 34 _In_ PLUID LogonId, 35 _In_ PVOID AuthorizationData, 36 _In_ PVOID GetKeyFunciton, 37 _In_ PVOID GetKeyArgument, 38 _Out_ PLSA_SEC_HANDLE CredentialHandle, 39 _Out_ PTimeStamp ExpirationTime); 40 41 NTSTATUS 42 NTAPI 43 LsaSpQueryCredentialsAttributes( 44 _In_ LSA_SEC_HANDLE CredentialHandle, 45 _In_ ULONG CredentialAttribute, 46 _Inout_ PVOID Buffer); 47 48 NTSTATUS 49 NTAPI 50 LsaSpFreeCredentialsHandle( 51 _In_ LSA_SEC_HANDLE CredentialHandle); 52 53 NTSTATUS 54 NTAPI 55 LsaSpSaveCredentials( 56 _In_ LSA_SEC_HANDLE CredentialHandle, 57 _In_ PSecBuffer Credentials); 58 59 NTSTATUS 60 NTAPI 61 LsaSpGetCredentials( 62 _In_ LSA_SEC_HANDLE CredentialHandle, 63 _Inout_ PSecBuffer Credentials); 64 65 NTSTATUS 66 NTAPI 67 LsaSpDeleteCredentials( 68 _In_ LSA_SEC_HANDLE CredentialHandle, 69 _In_ PSecBuffer Key); 70 71 NTSTATUS 72 NTAPI 73 LsaSpGetInfoW( 74 _Out_ PSecPkgInfoW PackageInfo); 75 76 NTSTATUS 77 NTAPI 78 LsaSpInitLsaModeContext( 79 _In_ LSA_SEC_HANDLE CredentialHandle, 80 _In_ LSA_SEC_HANDLE ContextHandle, 81 _In_ PUNICODE_STRING TargetName, 82 _In_ ULONG ContextRequirements, 83 _In_ ULONG TargetDataRep, 84 _In_ PSecBufferDesc InputBuffers, 85 _Out_ PLSA_SEC_HANDLE NewContextHandle, 86 _Inout_ PSecBufferDesc OutputBuffers, 87 _Out_ PULONG ContextAttributes, 88 _Out_ PTimeStamp ExpirationTime, 89 _Out_ PBOOLEAN MappedContext, 90 _Out_ PSecBuffer ContextData); 91 92 NTSTATUS 93 NTAPI 94 LsaSpAcceptLsaModeContext( 95 _In_ LSA_SEC_HANDLE CredentialHandle, 96 _In_ LSA_SEC_HANDLE ContextHandle, 97 _In_ PSecBufferDesc InputBuffer, 98 _In_ ULONG ContextRequirements, 99 _In_ ULONG TargetDataRep, 100 _Out_ PLSA_SEC_HANDLE NewContextHandle, 101 _Inout_ PSecBufferDesc OutputBuffer, 102 _Out_ PULONG ContextAttributes, 103 _Out_ PTimeStamp ExpirationTime, 104 _Out_ PBOOLEAN MappedContext, 105 _Out_ PSecBuffer ContextData); 106 107 NTSTATUS 108 NTAPI 109 LsaSpDeleteContext( 110 _In_ LSA_SEC_HANDLE ContextHandle); 111 112 NTSTATUS 113 NTAPI 114 LsaSpApplyControlToken( 115 _In_ LSA_SEC_HANDLE ContextHandle, 116 _In_ PSecBufferDesc ControlToken); 117 118 NTSTATUS 119 NTAPI 120 LsaSpGetUserInfo( 121 _In_ PLUID LogonId, 122 _In_ ULONG Flags, 123 _Out_ PSecurityUserData *UserData); 124 125 NTSTATUS 126 NTAPI 127 LsaSpGetExtendedInformation( 128 _In_ SECPKG_EXTENDED_INFORMATION_CLASS Class, 129 _Out_ PSECPKG_EXTENDED_INFORMATION *ppInfo); 130 131 NTSTATUS 132 NTAPI 133 LsaSpSetExtendedInformation( 134 _In_ SECPKG_EXTENDED_INFORMATION_CLASS Class, 135 _In_ PSECPKG_EXTENDED_INFORMATION Info); 136