276 {
277 InputSecurityBuffers inputBuffers = default(InputSecurityBuffers);
278 if (incomingBlob != null)
279 {
280 inputBuffers.SetNextBuffer(new InputSecurityBuffer(incomingBlob, SecurityBufferType.SECBUFFER_TOKEN));
281 }
282 if (channelBinding != null)
283 {
284 inputBuffers.SetNextBuffer(new InputSecurityBuffer(channelBinding));
285 }
286 SecurityBuffer outputBuffer = new SecurityBuffer(resultBlob, SecurityBufferType.SECBUFFER_TOKEN);
287 global::Interop.SspiCli.ContextFlags outFlags = global::Interop.SspiCli.ContextFlags.Zero;
288 SafeDeleteSslContext context = (SafeDeleteSslContext)securityContext;
289 global::Interop.SECURITY_STATUS win32SecurityStatus = (global::Interop.SECURITY_STATUS)SSPIWrapper.AcceptSecurityContext(GlobalSSPI.SSPIAuth, credentialsHandle, ref context, ContextFlagsAdapterPal.GetInteropFromContextFlagsPal(requestedContextFlags), global::Interop.SspiCli.Endianness.SECURITY_NETWORK_DREP, inputBuffers, ref outputBuffer, ref outFlags);
290 resultBlob = outputBuffer.token;
291 securityContext = context;
292 contextFlags = ContextFlagsAdapterPal.GetContextFlagsPalFromInterop(outFlags);
293 return SecurityStatusAdapterPal.GetSecurityStatusPalFromInterop(win32SecurityStatus);
294 }