private async void provisionStartBtn_Click(object sender, RoutedEventArgs e) { bool backupSecret = false; if (ProvisionTabBackupCheckBox.IsChecked.HasValue && ProvisionTabBackupCheckBox.IsChecked.Value) { if (string.IsNullOrWhiteSpace(ProvisionConfigPassphraseTextbox.Password)) { await this.ShowMessageAsync("Invalid passphrase.", "You must enter a passphrase to protect your secret key!"); return; } if (ProvisionConfigPassphraseTextbox.Password != ProvisionConfigPassphraseConfirmTextbox.Password) { await this.ShowMessageAsync("Invalid passphrase.", "Entered passphrases are do not match."); return; } backupSecret = true; } var msgResult = await this.ShowMessageAsync(string.Empty, "Yubikey slots 1 and 2 will be erased!\nContinue?", MessageDialogStyle.AffirmativeAndNegative); if (msgResult == MessageDialogResult.Affirmative) { statusBox.Items.Clear(); provisionStartBtn.IsEnabled = false; YubikeyConfigurator ykConfigurator = new YubikeyConfigurator(); ykConfigurator.WriteError = WriteError; ykConfigurator.WriteInfo = WriteInfo; ykConfigurator.WriteSuccess = WriteSuccess; ykConfigurator.WriteWarning = WriteWarning; if (backupSecret == true) { await Task.Run(() => { ykConfigurator.Provision(ProvisionConfigPassphraseTextbox.Password, true); }); } else { await Task.Run(() => { ykConfigurator.Provision(true); }); } provisionUploadBtn.IsEnabled = true; provisionStartBtn.IsEnabled = true; } }
private static void DoProvisioning(object invokedVerbInstance) { var provisionSubOptions = invokedVerbInstance as ProvisionSubOptions; if (provisionSubOptions == null) { WriteError("Error parsing the arguments"); return; } WriteWarning("Yubikey slots 1 and 2 will be erased! Type 'continue' to proceed."); if (!Console.ReadLine().Equals("continue", StringComparison.InvariantCultureIgnoreCase)) { return; } YubikeyConfigurator ykConfigurator = new YubikeyConfigurator(); ykConfigurator.WriteError = WriteError; ykConfigurator.WriteInfo = WriteInfo; ykConfigurator.WriteSuccess = WriteSuccess; ykConfigurator.WriteWarning = WriteWarning; ykConfigurator.Provision(true); }