Esempio n. 1
0
 public void UnlockAccounts()
 {
     for (int i = 0; i < _config.UnlockAccounts.Length; i++)
     {
         string unlockAccount = _config.UnlockAccounts[i];
         if (unlockAccount != _config.BlockAuthorAccount)
         {
             try
             {
                 Address address = new Address(unlockAccount);
                 if (_wallet.UnlockAccount(address, _passwordProvider.GetPassword(address) ?? string.Empty.Secure(), TimeSpan.FromDays(1000)))
                 {
                     if (_logger.IsInfo)
                     {
                         _logger.Info($"Unlocked account: {unlockAccount}");
                     }
                 }
             }
             catch (Exception e)
             {
                 if (_logger.IsError)
                 {
                     _logger.Error($"Couldn't unlock account {unlockAccount}.", e);
                 }
             }
         }
     }
 }
Esempio n. 2
0
        private ProtectedPrivateKey LoadKeyForAccount(string account)
        {
            if (!string.IsNullOrEmpty(account))
            {
                Address      blockAuthor = new Address(Bytes.FromHexString(account));
                SecureString password    = _passwordProvider.GetPassword(blockAuthor);

                try
                {
                    (ProtectedPrivateKey privateKey, Result result) = _keyStore.GetProtectedKey(new Address(account), password);
                    if (result == Result.Success)
                    {
                        return(privateKey);
                    }

                    if (_logger.IsError)
                    {
                        _logger.Error($"Not able to unlock the key for {account}");
                    }
                    // continue to the other methods
                }
                catch (Exception e)
                {
                    if (_logger.IsError)
                    {
                        _logger.Error($"Not able to unlock the key for {account}", e);
                    }
                }
            }

            return(null);
        }
Esempio n. 3
0
        public IDatabase LoadDatabase(string path)
        {
            using (var stream = _storage.Load(path))
            {
                var database = LoadDatabase(stream, string.Empty);

                if (database != null)
                {
                    return(database);
                }

                do
                {
                    var password = _passwordProvider.GetPassword();
                    database = LoadDatabase(stream, password);

                    if (database != null)
                    {
                        return(database);
                    }
                }while (_passwordProvider.CanProvideNewPassword());

                return(null);
            }
        }
Esempio n. 4
0
 public async Task <ISession> RestoreSession()
 {
     if (_session == null)
     {
         var settings = _settingsLoadService.Load();
         var password = _passwordProvider.GetPassword(settings.Username);
         var client   = _clientFactory.GetClient(settings.Version);
         _session = await Task.Run(() =>
                                   client.LoginByUsername(
                                       settings.MattermostUrl,
                                       settings.TeamId,
                                       settings.Username,
                                       password));
     }
     return(_session);
 }
        public async Task <ISession> RestoreSession()
        {
            if (_session == null)
            {
                var  settings = _settingsLoadService.Load();
                var  password = _passwordProvider.GetPassword(settings.Username);
                var  client   = _clientFactory.GetClient(settings.Version);
                bool retryLogin;
                do
                {
                    try
                    {
                        _session = await Task.Run(() =>
                                                  client.LoginByUsername(
                                                      settings.MattermostUrl,
                                                      settings.TeamId,
                                                      settings.Username,
                                                      password));

                        retryLogin = false;
                    }
                    catch (WebException wex)
                    {
                        if (wex.Status == WebExceptionStatus.TrustFailure &&
                            _invalidSslQuestion.GetAnswer(settings.MattermostUrl, wex.InnerException.Message))
                        {
                            retryLogin = true;
                            _serverCertificateValidator.DisableValidation();
                        }
                        else
                        {
                            throw new UserAbortException();
                        }
                    }
                } while (retryLogin);
            }
            return(_session);
        }
Esempio n. 6
0
        public string GetKey()
        {
            var password = _passwordProvider.GetPassword(null);

            return(password.Unsecure());
        }
Esempio n. 7
0
 public string GetPassword(PasswordRequestOptions options)
 {
     return(_passwordProvider.GetPassword(options));
 }