Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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();
            }
        }