Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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();
        }