private async void ButtonGenerate_Click(object sender, EventArgs e) { try { if (ListViewSubject.Items.Count < 1) { WinFormsUtils.ShowInfo(null, "Please specify subject first"); return; } DnEntry[] dnEntries = new DnEntry[ListViewSubject.Items.Count]; for (int i = 0; i < ListViewSubject.Items.Count; i++) { dnEntries[i] = (DnEntry)ListViewSubject.Items[i].Tag; } string fileName = null; byte[] fileContent = null; // TODO - Parametrize HashAlgorithm // TODO - Specify SAN await WaitDialog.Execute( this, () => _pkcs11Slot.GenerateCsr(_privKeyInfo, _pubKeyInfo, dnEntries, HashAlgorithm.SHA256, out fileName, out fileContent) ); using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { saveFileDialog.FileName = fileName; saveFileDialog.Filter = "All files (*.*)|*.*|DER encoded certificate signing request (*.csr)|*.csr"; saveFileDialog.FilterIndex = 2; saveFileDialog.AddExtension = true; saveFileDialog.CreatePrompt = false; saveFileDialog.OverwritePrompt = true; if (saveFileDialog.ShowDialog(this) == DialogResult.OK) { File.WriteAllBytes(saveFileDialog.FileName, fileContent); WinFormsUtils.ShowInfo(this, "CSR successfully saved"); DialogResult = DialogResult.OK; } } } catch (Exception ex) { WinFormsUtils.ShowError(this, ex); } }
private void ReloadListView() { foreach (ListViewItem listViewItem in ListViewSubject.Items) { // Clear currently viewed values listViewItem.Text = null; listViewItem.SubItems.Clear(); // Parse tag DnEntry dnEntry = (DnEntry)listViewItem.Tag; // Set new values listViewItem.Text = string.Format("{0} ({1})", dnEntry.Definition.Name, dnEntry.Definition.Oid); listViewItem.SubItems.Add(dnEntry.Value); } }
private void ButtonAdd_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(TextBoxValue.Text)) { TextBoxValue.Focus(); return; } DnEntryDefinition dnEntryDefinition = ((ComboBoxDnEntryTypeItem)ComboBoxType.SelectedItem).DnEntryDefinition; DnEntry dnEntry = new DnEntry(dnEntryDefinition, TextBoxValue.Text); ListViewSubject.Items.Add(new ListViewItem() { Tag = dnEntry }); TextBoxValue.Text = null; ReloadListView(); }