Working on implementing the ServerContext and structuring things so that invoking the public interface is a little easier - trying to move out of proof-of-concept code to prototype code. Still need to rework how I deal with the context and credential handles, worried that they're not treated safe. Still need to reorganize a lot of where code lives. Very inconsistent so far.
This commit is contained in:
65
Contexts/ContextNativeMethods.cs
Normal file
65
Contexts/ContextNativeMethods.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NSspi.Contexts
|
||||
{
|
||||
public static class ContextNativeMethods
|
||||
{
|
||||
/*
|
||||
SECURITY_STATUS SEC_Entry AcceptSecurityContext(
|
||||
_In_opt_ PCredHandle phCredential,
|
||||
_Inout_ PCtxtHandle phContext,
|
||||
_In_opt_ PSecBufferDesc pInput,
|
||||
_In_ ULONG fContextReq,
|
||||
_In_ ULONG TargetDataRep,
|
||||
_Inout_opt_ PCtxtHandle phNewContext,
|
||||
_Inout_opt_ PSecBufferDesc pOutput,
|
||||
_Out_ PULONG pfContextAttr,
|
||||
_Out_opt_ PTimeStamp ptsTimeStamp
|
||||
);
|
||||
*/
|
||||
|
||||
[DllImport(
|
||||
"Secur32.dll",
|
||||
EntryPoint = "AcceptSecurityContext",
|
||||
CallingConvention = CallingConvention.Winapi,
|
||||
CharSet = CharSet.Unicode,
|
||||
SetLastError = true
|
||||
)]
|
||||
public static extern SecurityStatus AcceptSecurityContext_1(
|
||||
ref long credHandle,
|
||||
IntPtr oldContextHandle,
|
||||
IntPtr inputBuffer,
|
||||
ContextAttrib requestedAttribs,
|
||||
SecureBufferDataRep dataRep,
|
||||
ref long newContextHandle,
|
||||
IntPtr outputBuffer,
|
||||
ref ContextAttrib outputAttribs,
|
||||
ref long expiry
|
||||
);
|
||||
|
||||
|
||||
[DllImport(
|
||||
"Secur32.dll",
|
||||
EntryPoint = "AcceptSecurityContext",
|
||||
CallingConvention = CallingConvention.Winapi,
|
||||
CharSet = CharSet.Unicode,
|
||||
SetLastError = true
|
||||
)]
|
||||
public static extern SecurityStatus AcceptSecurityContext_2(
|
||||
ref long credHandle,
|
||||
ref long oldContextHandle,
|
||||
IntPtr inputBuffer,
|
||||
ContextAttrib requestedAttribs,
|
||||
SecureBufferDataRep dataRep,
|
||||
ref long newContextHandle,
|
||||
IntPtr outputBuffer,
|
||||
ref ContextAttrib outputAttribs,
|
||||
ref long expiry
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user