/// <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."); }