예제 #1
0
        public void GetPlaintextMasterKeyReturnsSameKeyForSamePassword()
        {
            var u = new DBUser ();
            u.Username = "******";
            var password = "******";
            u.CreateCryptoFields (password);
            var key1 = u.GetPlaintextMasterKey (password);
            var key2 = u.GetPlaintextMasterKey (password);

            Assert.AreEqual (key1, key2);
            Assert.AreEqual (key1.ToHexString (), key2.ToHexString ());
        }
예제 #2
0
파일: Main.cs 프로젝트: rashoodkhan/Rainy
        public static void AddDummyUserIfRequired(Funq.Container container)
        {
            // create a dummy user
            var fac = container.Resolve<IDbConnectionFactory> ();
            using (var db = fac.OpenDbConnection ()) {

                if (db.FirstOrDefault<DBUser> (u => u.Username == "dummy") == null) {

                    var user = new DBUser ();
                    user.Username = "******";
                    user.CreateCryptoFields ("foobar123");
                    user.FirstName = "John Dummy";
                    user.LastName = "Doe";
                    user.AdditionalData  = "Dummy user that is created when in development mode";
                    user.IsActivated = true;
                    user.IsVerified = true;
                    user.Manifest.LastSyncRevision = 0;
                    user.EmailAddress = "*****@*****.**";
                    db.Insert<DBUser> (user);
                    // insert some sample notes
                    var f = container.Resolve<IDbStorageFactory> ();
                    var key = user.GetPlaintextMasterKey ("foobar123");
                    var r = new RequestingUser {
                        Username = "******",
                        EncryptionMasterKey = key.ToHexString ()
                    };
                    using (var storage = f.GetDbStorage (r)) {
                        var sample_notes = new DiskStorage ();
                        sample_notes.SetPath ("../../../sample_notes/");
                        sample_notes.CopyTo (storage);
                    }

                }
            }
        }
예제 #3
0
 public void GetPlaintextMasterKeyReturns256Bit()
 {
     var u = new DBUser ();
     u.Username = "******";
     var password = "******";
     u.CreateCryptoFields (password);
     var master_key = u.GetPlaintextMasterKey (password);
     Assert.AreEqual(32, master_key.Length);
 }
예제 #4
0
        public void BasicEncryptAndDecrypt()
        {
            var u = new DBUser ();
            u.Username = "******";
            var password = "******";

            u.CreateCryptoFields (password);
            var test_string = "The quick brown fox jumps over the lazy dog.";

            var master_key = u.GetPlaintextMasterKey (password);

            byte[] encrypted_bytes = u.EncryptString (master_key, test_string);
            string decrypted_string = u.DecryptUnicodeString (master_key, encrypted_bytes);

            Assert.AreEqual (test_string, decrypted_string);
        }
예제 #5
0
        public void EncryptDecryptWithHexRepresentation()
        {
            var u = new DBUser ();
            u.Username = "******";
            var password = "******";

            u.CreateCryptoFields (password);
            var master_key = u.GetPlaintextMasterKey (password);
            var key = master_key.ToHexString ();
            var test_string = "The quick brown fox jumps over the lazy dog.";

            byte[] encrypted_bytes = u.EncryptString (master_key, test_string);
            string encrypted_string = encrypted_bytes.ToHexString ();
            string decrypted_string = u.DecryptUnicodeString (master_key, encrypted_string.ToByteArray ());

            Assert.AreEqual (test_string, decrypted_string);
        }