public void NoteIsEncryptedIsCorrectlySet() { // test with encrypted notes DbStorage storage = new DbEncryptedStorage (this.connFactory, this.testUser, key); var sample_notes = DbStorageTests.GetSampleNotes (); foreach(var note in sample_notes) { storage.SaveNote (note); } storage.Dispose (); foreach(var note in sample_notes) { // the stored notes should only contain hex chars using (var db = connFactory.OpenDbConnection ()) { var db_note = db.First<DBNote> (n => n.Guid == note.Guid); // this will fail if any non-hex chars are in Assert.IsTrue (db_note.IsEncypted); } } storage = new DbStorage (this.connFactory, this.testUser.Username); sample_notes = DbStorageTests.GetSampleNotes (); foreach(var note in sample_notes) { storage.SaveNote (note); } storage.Dispose (); foreach(var note in sample_notes) { // the stored notes should only contain hex chars using (var db = connFactory.OpenDbConnection ()) { var db_note = db.First<DBNote> (n => n.Guid == note.Guid); // this will fail if any non-hex chars are in Assert.IsFalse (db_note.IsEncypted); } } }
public void EncryptedStorageStoresNoPlaintextNotes() { var storage = new DbEncryptedStorage (connFactory, testUser, key); var sample_notes = DbStorageTests.GetSampleNotes (); foreach(var note in sample_notes) { storage.SaveNote (note); } storage.Dispose (); foreach(var note in sample_notes) { // the stored notes should only contain hex chars using (var db = connFactory.OpenDbConnection ()) { var db_note = db.First<DBNote> (n => n.Guid == note.Guid); // this will fail if any non-hex chars are in db_note.Text.ToByteArray (); } } }
public void StorageCanBeReusedAfterReEncryptNotes() { DbEncryptedStorage storage = new DbEncryptedStorage (this.connFactory, this.testUser, key); var sample_notes = DbStorageTests.GetSampleNotes (); foreach(var note in sample_notes) { storage.SaveNote (note); } storage.Dispose (); storage = new DbEncryptedStorage (connFactory, testUser, key); var new_key = CryptoHelper.Create256BitLowerCaseHexKey (new RNGCryptoServiceProvider ()); storage.ReEncryptAllNotes (new_key); var decrypted_notes = storage.GetNotes (); foreach (var note in sample_notes) { Assert.AreEqual (note.Text, decrypted_notes.Values.First (n => n.Guid == note.Guid).Text); } }