/// <summary> /// Decrypt a request or response /// </summary> /// <param name="securityBuffers">Security buffers containing encrypted data.</param> /// <param name="sentFromClient">True if the token is a request, false is a response</param> /// <returns>Plain-text data.</returns> private byte[] Decrypt(SecurityBuffer[] securityBuffers, bool sentFromClient) { KileContext context = sentFromClient ? (KileContext)kileDecoder.serverContext : (KileContext)kileDecoder.clientContext; KileRole.GssUnWrapEx(context, securityBuffers); return(SspiUtility.ConcatenateReadWriteSecurityBuffers(securityBuffers, SecurityBufferType.Data)); }
/// <summary> /// Verify a request or response /// </summary> /// <param name="securityBuffers">Security buffers containing encrypted data.</param> /// <param name="sentFromClient">True if the token is a request, false is a response</param> /// <returns>True if verify succeed; otherwise, false.</returns> private bool Verify(SecurityBuffer[] securityBuffers, bool sentFromClient) { KileContext context = sentFromClient ? (KileContext)kileDecoder.serverContext : (KileContext)kileDecoder.clientContext; KilePdu pdu; return(KileRole.GssVerifyMicEx(context, securityBuffers, out pdu)); }
/// <summary> /// Decrypt a request or response /// </summary> /// <param name="token">A token containing encrypted data.</param> /// <param name="sentFromClient">True if the token is a request, false is a response</param> /// <returns>Plain-text data.</returns> private byte[] Decrypt(byte[] token, bool sentFromClient) { KileContext context = sentFromClient ? (KileContext)kileDecoder.serverContext : (KileContext)kileDecoder.clientContext; KilePdu pdu = KileRole.GssUnWrap(context, token); Token4121 token4121Pdu = pdu as Token4121; if (token4121Pdu != null) { return(token4121Pdu.Data); } Token1964_4757 token1964or4757Pdu = pdu as Token1964_4757; if (token1964or4757Pdu != null) { return(token1964or4757Pdu.Data); } throw new InvalidOperationException("Token type is not supported."); }