Ejemplo n.º 1
0
        private async void MetroWindow_Loaded(object sender, RoutedEventArgs e)
        {
            YubiCryptOAuth2Token t = Properties.Settings.Default.AccessToken;

            SettingKDFComboBox.ItemsSource             = _engine.KeyDerivationFunctionProviders;
            SettingSymmetricCipherComboBox.ItemsSource = _engine.SymmetricCipherProviders;
            SettingMACComboBox.ItemsSource             = _engine.MACProviders;

            if (!await LoadSettings())
            {
                return;
            }

            if (t == null)
            {
                await this.ShowMessageAsync("No YubiCrypt Access Token", "In order to access the YubiCrypt platform you must first request an access token.\nPlease sign in.", MessageDialogStyle.Affirmative);

                tabAccount.IsSelected = true;
                return;
            }

            _client = new YubiCryptClient(API_CLIENT_ID, API_CLIENT_SECRET, t);

            await LoadFiles();
        }
Ejemplo n.º 2
0
        private async Task LoadSettings()
        {
            YubiCryptOAuth2Token storedAccessToken     = SettingsHelper.LoadSetting <YubiCryptOAuth2Token>(Consts.SETTINGS_ACCESS_TOKEN_KEY);
            TFTokenData          storedTokenSecretData = SettingsHelper.LoadSetting <TFTokenData>(Consts.SETTINGS_TOKEN_SECRET_KEY);
            var localStoredFiles = await localStorageFolder.GetFilesAsync();

            if (storedAccessToken != null)
            {
                authenticationInfoText.Text = string.Format("Access token expires: {0}", storedAccessToken.Expires);
                DeleteTokenButton.IsEnabled = true;
            }
            else
            {
                authenticationInfoText.Text = "No access token.";
                DeleteTokenButton.IsEnabled = false;
            }

            if (storedTokenSecretData != null)
            {
                keyStorageInfoText.Text   = string.Format("Storing Secret Key for token with Serial# {0}.", storedTokenSecretData.SerialNumber);
                DeleteKeyButton.IsEnabled = true;
            }
            else
            {
                keyStorageInfoText.Text   = "No stored token information";
                DeleteKeyButton.IsEnabled = false;
            }

            DeleteLocalFilesButton.IsEnabled = false;
            LocalFileStorageInfo.Text        = string.Format("{0} decrypted file(s) stored locally.", localStoredFiles.Count);
            if (localStoredFiles.Count > 0)
            {
                DeleteLocalFilesButton.IsEnabled = true;
            }
        }
Ejemplo n.º 3
0
 private bool CheckAccessToken(YubiCryptOAuth2Token storedAccessToken)
 {
     if (storedAccessToken == null || storedAccessToken.Expires < DateTime.Now)
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 4
0
        private void UpdateTokenStatus()
        {
            YubiCryptOAuth2Token t = Properties.Settings.Default.AccessToken;

            if (t != null)
            {
                statusMessage.Text = "Session token expires " + t.Expires;
            }
            else
            {
                statusMessage.Text = "No session token";
            }
        }
Ejemplo n.º 5
0
        private async Task RefreshUI()
        {
            YubiCryptOAuth2Token storedAccessToken = SettingsHelper.LoadSetting <YubiCryptOAuth2Token>(Consts.SETTINGS_ACCESS_TOKEN_KEY);

            if (CheckAccessToken(storedAccessToken))
            {
                client = new YubiCryptClient(clientId, clientSecret, storedAccessToken);
                if (!IsTokenSecretAvailable())
                {
                    await TokenSecretFirstTimeSetup();

                    return;
                }
                var secret = SettingsHelper.LoadSetting <TFTokenData>(Consts.SETTINGS_TOKEN_SECRET_KEY);
                await LoadFileListAsync();
            }
            else
            {
                await RenewAccessToken();
            }
        }
Ejemplo n.º 6
0
 public AccessTokenReceivedEventArgs(YubiCryptOAuth2Token accessToken)
 {
     AccessToken = accessToken;
 }