private async void GetEntries(string passwd) { if (!KeyProvider.CorrectPassword(passwd)) { RaiseGetEntriesFailed(); return; } var task = new Task <List <JournalEntry> >(() => { return(_entriesProvider.GetEntries(passwd)); }); task.Start(); var result = new List <JournalEntry>(); try { result = await task; RaiseGetEntriesCompleted(); } catch (Exception) { RaiseGetEntriesFailed(); } this.Entries = new ObservableCollection <JournalEntry>(result); }
public string Decrypt(string encryptedContent, string password) { if (!KeyProvider.CorrectPassword(password)) { throw new Exception("Password isn`t correct"); } var buffer = Convert.FromBase64String(encryptedContent); string decrypted; var transform = GetDecryptor(); using (var ms = new MemoryStream()) { using (var cs = new CryptoStream(ms, transform, CryptoStreamMode.Write)) { cs.Write(buffer, 0, buffer.Length); cs.FlushFinalBlock(); cs.Clear(); cs.Close(); decrypted = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); } } return(decrypted); }
private ICryptoTransform GetEncryptor(string password) { if (!KeyProvider.CorrectPassword(password)) { throw new Exception("Password isn`t correct"); } var rijndael = new RijndaelManaged() { Key = KeyProvider.GetKey(), IV = KeyProvider.GetIV() }; return(rijndael.CreateEncryptor()); }
private async void AddEntry(string passwd) { if (!KeyProvider.CorrectPassword(passwd)) { RaiseAddEntryFailed(); } var newEntry = new JournalEntry(Content, DateTime.Now); var task = Task.Factory.StartNew(() => { _entriesProvider.AddEntry(newEntry, passwd); }); try { await task; RaiseAddEntryCompleted(); } catch (Exception) { RaiseAddEntryFailed(); } }