private static async Task LoadSession() { var encryptedStream = IOProxy.GetMemoryStreamFromFile(".session"); byte[] array = new byte[1]; try { array = await Authentification.Cryptography.DecryptMemoryStreamAsync(encryptedStream, Authentification.AppPassword.Password, Authentification.AppPassword.Salt); } catch (System.Security.SecurityException) { await NewTab(); return; } MemoryStream ms = new MemoryStream(); await ms.WriteAsync(array, 0, array.Length); ms.Position = 0; BinaryFormatter formatter = new BinaryFormatter(); List <SessionEntry> lastSessionTabs = (List <SessionEntry>)formatter.Deserialize(ms); if (lastSessionTabs.Count == 0) { await NewTab(); return; } var plugins = PluginEntryCollection.Plugins; foreach (var entry in lastSessionTabs.ToArray()) { if ((!IsSystemTab(entry.Name)) && !plugins.ContainsKey(entry.Name)) { lastSessionTabs.Remove(lastSessionTabs.Where(w => w.Equals(entry)).FirstOrDefault()); } } Task[] loadTasks = new Task[lastSessionTabs.Count]; for (int index = 0; index < lastSessionTabs.Count; index++) { ClosableTab tab = new ClosableTab(); tab.PluginTabClose += CloseTab; MainWindowViewModel.tabs.Add(tab); } for (int ind = 0; ind < MainWindowViewModel.tabs.Count; ind++) { if (IsSystemTab(lastSessionTabs[ind].Name)) { loadTasks[ind] = LoadSystemTab(lastSessionTabs[ind], MainWindowViewModel.tabs[ind]); } else { loadTasks[ind] = UpdateTabContent(plugins[lastSessionTabs[ind].Name], MainWindowViewModel.tabs[ind], lastSessionTabs[ind]); } } await Task.WhenAll(loadTasks); }
public void GetPasswordFromFile(string filename) { MemoryStream ms = IOProxy.GetMemoryStreamFromFile(filename); EncryptedPassword ps = new EncryptedPassword(); BinaryFormatter formatter = new BinaryFormatter(); ps = (EncryptedPassword)formatter.Deserialize(ms); Hash = ps.Hash; Salt = ps.Salt; }
public static void LoadSettings() { paramters = new Parameters(); if (IOProxy.Exists(".config")) { paramters.Deserialize(IOProxy.GetMemoryStreamFromFile(".config")); } if (string.IsNullOrEmpty(CurrentColorScheme)) { CurrentColorScheme = _colorSchemeDict.First().Key; } else { UpdateUIColorScheme(); } }