private void createButton_Click(object sender, EventArgs e)
        {
            Success = false;

            if (!jsonFormatCheckBox.Checked &&
                !currentUserCheckBox.Checked &&
                !localMachineCheckBox.Checked)
            {
                ShowError("At least one private key format must be selected.");
                return;
            }

            if (jsonFormatCheckBox.Checked &&
                string.IsNullOrEmpty(passwordTextBox1.Text) &&
                string.IsNullOrEmpty(passwordTextBox2.Text))
            {
                if (MessageBox.Show("Saving the private key (JSON format) without encryption is dangerous.  Are you sure you want to save it unencrypted?  Click 'OK' if you want to continue saving the encrypted key.",
                                    "Empty Password",
                                    MessageBoxButtons.OKCancel,
                                    MessageBoxIcon.Exclamation) == DialogResult.Cancel)
                {
                    return;
                }
            }

            if (jsonFormatCheckBox.Checked &&
                passwordTextBox1.Text !=
                passwordTextBox2.Text)
            {
                ShowError("Passwords do not match.  Identity creation is canceled.");
                return;
            }

            if (string.IsNullOrEmpty(systemNameTextBox.Text) ||
                string.IsNullOrEmpty(clientNameTextBox.Text))
            {
                ShowError("System and Client names cannot be empty.");
                return;
            }

            folderBrowserDialog.SelectedPath = FolderPath;

            if (folderBrowserDialog.ShowDialog() == DialogResult.Cancel)
            {
                ShowCreationCanceledMessageBox();
                return;
            }

            FolderPath = folderBrowserDialog.SelectedPath;

            var curve = (ECDiffieHellmanCurve)curveComboBox.SelectedItem;

            var identity = new MessageClientIdentity(this.systemNameTextBox.Text, this.clientNameTextBox.Text, curve);

            string filePath = Path.Combine(FolderPath, this.systemNameTextBox.Text + "-" + this.clientNameTextBox.Text);

            File.WriteAllText(filePath + ".pub", identity.SerializePublicInfoToJson());

            if (jsonFormatCheckBox.Checked && this.passwordTextBox1.Text != "")
            {
                File.WriteAllText(filePath + ".priv", identity.SerializePrivateInfoToJson(Encryption.Password, this.passwordTextBox1.Text));
            }
            else if (jsonFormatCheckBox.Checked)
            {
                File.WriteAllText(filePath + ".priv", identity.SerializePrivateInfoToJson(Encryption.None));
            }

            if (currentUserCheckBox.Checked)
            {
                File.WriteAllText(filePath + ".privu", identity.SerializePrivateInfoToJson(Encryption.CurrentUser));
            }

            if (localMachineCheckBox.Checked)
            {
                File.WriteAllText(filePath + ".privl", identity.SerializePrivateInfoToJson(Encryption.LocalMachine));
            }

            MessageBox.Show("Client identity creation complete.", "Operation Complete", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Success = true;
            this.Close();
        }