public void AssignNewKeysTest() { _cryptographyService.AssignNewKeys(); RSAParameters privateKey = _cryptographyService.GetPrivateKey(); RSAParameters publicKey = _cryptographyService.GetPublicKey(); _cryptographyService.AssignNewKeys(); RSAParameters privateKey2 = _cryptographyService.GetPrivateKey(); RSAParameters publicKey2 = _cryptographyService.GetPublicKey(); Assert.IsFalse(Equals(privateKey, privateKey2)); Assert.IsFalse(Equals(publicKey, publicKey2)); }
private void OnAssignNewKeysConfirmMsg(AssignNewKeysConfirmMsg msg) { _logger.Info("assign new keys confirmed --> assing new keys"); MasterLogin login = _database.GetAll <MasterLogin>().FirstOrDefault(); if (login != null) { _logger.Info("assign new keys"); _cryptographyService.AssignNewKeys(); login.PublicKey = _cryptographyService.GetPublicKey(); login.PrivateKey = _cryptographyService.GetPrivateKeyAsXml(); _logger.Info("update login with new keys"); _database.Update(login); _logger.Info("login with new keys updated"); _messenger.Send(new AssignNewKeysSuccsessMsg()); } else { _logger.Error("login is null!"); } }
private void DoLogin(object parameter) { UIServices.SetBusyState(); _logger.Info("reset error msg"); ErrorMsg = string.Empty; _logger.Info("starting with login process"); if (!string.IsNullOrEmpty(_login) && _login.Length >= 6) { var values = (object[])parameter; var passwordBox = values[0] as PasswordBox; if (passwordBox != null) { _logger.Info("password parameter is not null"); string password = passwordBox.Password; if (!string.IsNullOrEmpty(password)) { _logger.Info("password is not null or empty"); _logger.Info("check for exsisting login"); var database = Container.Resolve <IDataAccessLayer>(); List <MasterLogin> logins = database.GetAll <MasterLogin>(); if (logins.Count == 1) { var login = database.GetSingleByName <MasterLogin>(_login); if (login != null) { _logger.Info("login do exsits"); byte[] hashedPassword = _cryptographyService.HashPassword(password, login.Salt); _logger.Info("compare passwords..."); if (_cryptographyService.Compare(hashedPassword, login.Password)) { _logger.Info("...login verified."); OpenMainView(values); } else { _logger.Error("...login failed."); ErrorMsg = "Login failed!"; } } else { _logger.Error("master login already exists"); ErrorMsg = "Master login already exists!"; } } else if (logins.Count == 0) { _logger.Info("login do not exsits"); byte[] salt = _cryptographyService.GenerateSalt(); byte[] hashedPassword = _cryptographyService.HashPassword(password, salt); _cryptographyService.AssignNewKeys(); var masterLogin = new MasterLogin { Name = _login, Password = hashedPassword, Salt = salt, PrivateKey = _cryptographyService.GetPrivateKeyAsXml(), PublicKey = _cryptographyService.GetPublicKey(), }; database.Insert(masterLogin); OpenMainView(values); } } else { _logger.Error("password is null or empty!"); ErrorMsg = "Password is empty!"; } } } else { _logger.Error("login is null, empty or have less then 6 characters!"); ErrorMsg = "Login have less then 6 characters!"; } }