private async Task <bool> TokenSecretFirstTimeSetup() { var noTokenMessage = new MessageDialog(this.resourceLoader.GetString("Message_NoTokenSecret")); await noTokenMessage.ShowAsync(); var passphraseDialog = new RetrieveTokenSecretDialog(); ContentDialogResult passphraseDialogResult = await passphraseDialog.ShowAsync(); if (passphraseDialogResult == ContentDialogResult.Primary) { await ToggleProgressBar(true); var tokenStoredSecret = await client.GetTokenStoredSecret(passphraseDialog.TokenGeneratedOTP); TFTokenData tokenSecret = new TFTokenData(); tokenSecret.SerialNumber = tokenStoredSecret.TokenSerialNumber; await Task.Run(() => { tokenSecret.SecretKey = engine.DecryptTokenSecret(tokenStoredSecret.TFKDEncryptedSecret, tokenStoredSecret.TFKDEncryptionSalt, passphraseDialog.Passphrase); }); SettingsHelper.SaveSetting(Consts.SETTINGS_TOKEN_SECRET_KEY, tokenSecret); await ToggleProgressBar(false); return(true); } return(false); }
private async void GetKeyButton_Click(object sender, RoutedEventArgs e) { var otpInput = await this.ShowInputAsync("Yubikey OTP required", "Please touch your Yubikey to generate an OTP"); if (string.IsNullOrWhiteSpace(otpInput)) { return; } YubiCryptKey storedKey = await _client.GetTokenStoredSecret(otpInput); debugMessage.Text = "Secret: " + storedKey.TFKDEncryptedSecret + Environment.NewLine + "Salt: " + storedKey.TFKDEncryptionSalt + Environment.NewLine + "Serial #: " + storedKey.TokenSerialNumber;; var passphraseInput = await this.ShowInputAsync("Passphrase", "Please enter the passphrase"); if (string.IsNullOrWhiteSpace(passphraseInput)) { return; } var secretkey = _engine.DecryptTokenSecret(storedKey.TFKDEncryptedSecret, storedKey.TFKDEncryptionSalt, passphraseInput); var secretKeyHexString = BitConverter.ToString(secretkey).Replace("-", "").ToLowerInvariant(); }