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(); }
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; } }
private bool CheckAccessToken(YubiCryptOAuth2Token storedAccessToken) { if (storedAccessToken == null || storedAccessToken.Expires < DateTime.Now) { return(false); } return(true); }
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"; } }
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(); } }
public AccessTokenReceivedEventArgs(YubiCryptOAuth2Token accessToken) { AccessToken = accessToken; }