public void ValidateNewPasswordReEnterTest()
        {
            SecureString string1 = new SecureString();

            foreach (char c in validMasterPassword)
            {
                string1.AppendChar(c);
            }
            Authentification.NewMasterPassword(string1, true);

            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("Current password cannot be empty!", Visibility.Visible);

            viewModel.CheckPassword = new PasswordString(string1);
            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("", Visibility.Hidden, "New password cannot be empty!", Visibility.Visible);

            viewModel.NewPassword = new PasswordString(string1);
            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("", Visibility.Hidden, "Cannot use current password as a new one!", Visibility.Visible);

            SecureString string2 = new SecureString();

            foreach (char c in newPassword)
            {
                string2.AppendChar(c);
            }
            viewModel.NewPassword = new PasswordString(string2);
            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("", Visibility.Hidden, "", Visibility.Hidden, "Please re-enter new password", Visibility.Visible);

            SecureString string3 = new SecureString();

            foreach (char c in wrongPassword1)
            {
                string3.AppendChar(c);
            }
            viewModel.NewPasswordReEnter = new PasswordString(string3);
            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("", Visibility.Hidden, "Passwords don't match!", Visibility.Visible, "Passwords don't match!", Visibility.Visible);

            viewModel.CheckPassword      = new PasswordString(string3);
            viewModel.NewPasswordReEnter = new PasswordString(string2);
            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("Current password is incorrect!", Visibility.Visible);

            SecureString string4 = new SecureString();

            foreach (char c in wrongPassword2)
            {
                string4.AppendChar(c);
            }
            viewModel.CheckPassword = new PasswordString(string4);
            Assert.IsFalse(viewModel.OnSubmitPassword());
            CheckUIErrors("Current password is incorrect!", Visibility.Visible);

            viewModel.CheckPassword = new PasswordString(string1);
            Assert.IsTrue(viewModel.OnSubmitPassword());
            CheckUIErrors();
        }
Example #2
0
        public void CheckMasterPasswordTest()
        {
            SecureString wrongPassword = new SecureString();

            wrongPassword.AppendChar('c');
            SecureString passwd = new SecureString();

            foreach (char c in masterPassword.ToCharArray())
            {
                passwd.AppendChar(c);
            }

            Authentification.NewMasterPassword(passwd, triggerCompleteEvent: true);
            PasswordObject oldAppPassword = new PasswordObject();

            oldAppPassword.Password = Authentification.AppPassword.Password.Copy();
            oldAppPassword.Salt     = new byte[Authentification.AppPassword.Salt.Length];
            Authentification.AppPassword.Salt.CopyTo(oldAppPassword.Salt, 0);

            Assert.IsFalse(Authentification.CheckMasterPassword(wrongPassword));

            Assert.IsTrue(Authentification.CheckMasterPassword(passwd));
            PasswordObject newAppPassword = new PasswordObject();

            newAppPassword.Password = Authentification.AppPassword.Password.Copy();
            newAppPassword.Salt     = new byte[Authentification.AppPassword.Salt.Length];
            Authentification.AppPassword.Salt.CopyTo(newAppPassword.Salt, 0);
            Assert.IsTrue(CheckAppPassword(oldAppPassword, newAppPassword));

            Assert.IsTrue(Authentification.CheckMasterPassword(passwd, shortCheck: true));
            Assert.IsTrue(CheckAppPassword(newAppPassword, Authentification.AppPassword));
        }
Example #3
0
 public void OnSubmitPassword()
 {
     ClearValidationErrors();
     if (ValidateNewPassword() && ValidateNewPasswordReEnter())
     {
         Authentification.NewMasterPassword(NewPassword.Password);
     }
 }
Example #4
0
        public bool OnSubmitPassword()
        {
            ClearValidationErros();
            string result = BasePasswordCheck(CheckPassword.Password, "Current");

            if (!string.IsNullOrEmpty(result))
            {
                CheckPasswordError      = result;
                CheckPasswordErrorFrame = Visibility.Visible;
                return(false);
            }
            result = BasePasswordCheck(NewPassword.Password, "New");
            if (!string.IsNullOrEmpty(result))
            {
                NewPasswordError      = result;
                NewPasswordErrorFrame = Visibility.Visible;
                return(false);
            }
            if (CheckPassword.Equals(NewPassword))
            {
                NewPasswordError      = "Cannot use current password as a new one!";
                NewPasswordErrorFrame = Visibility.Visible;
                return(false);
            }
            if (!ValidateNewPasswordReEnter())
            {
                return(false);
            }
            if (!Authentification.CheckMasterPassword(CheckPassword.Password, shortCheck: true))
            {
                CheckPasswordError      = "Current password is incorrect!";
                CheckPasswordErrorFrame = Visibility.Visible;
                return(false);
            }
            Authentification.NewMasterPassword(NewPassword.Password, triggerCompleteEvent: true);
            OnPasswordUpdateComplete();
            return(true);
        }