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));
        }
Esempio n. 2
0
        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!");
            }
        }
Esempio n. 3
0
        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!";
            }
        }