Example #1
0
        /// <summary>
        /// Open wizard what will be next step
        /// If you generate self-sign CA root certificate, next step can be to open form form issue certificate base on certificate request file ganerated
        /// using menu option "Create Request"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void btnContinue_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(CARootFileNamePath) && File.Exists(CARootFileNamePath))
            {
                MetroWindow metroWin   = (MetroWindow)Application.Current.MainWindow;
                var         mySettings = new MetroDialogSettings()
                {
                    AffirmativeButtonText = "Issue certificate base on request",
                    NegativeButtonText    = "Cancel",
                    ColorScheme           = MetroDialogColorScheme.Theme
                };
                MessageDialogResult result = await metroWin.ShowMessageAsync("INFO",
                                                                             "If you wish to generate certificate base on certificate request file (.csr) inside menu option 'Create Request'," + "\n" +
                                                                             "use button 'Issue certificate base on request'." + "\n" +
                                                                             "Generated CA root certificate: " + tbSignedCertName.Text + "\n" +
                                                                             "will be use to sing certificate requst (.csr) file, generated inside menu option 'Create Request'.",
                                                                             MessageDialogStyle.AffirmativeAndNegative, mySettings);

                if (result == MessageDialogResult.Affirmative)
                {
                    // open menu "Issue Certificate"
                    MainWindow mw = new MainWindow();

                    string header0 = "Issue Certificate";
                    IEnumerable <TabablzControl> tctrl;
                    mw.GetTabablzData(out header0, out tctrl);
                    header0 = "Issue Certificate";
                    GenerateSignRequest gr = new GenerateSignRequest(mw.certFriendlyName, requestFileNamePath,
                                                                     requestFileNamePrivateKeyPath, CARootFileNamePath,
                                                                     CARootPubKeyFileNamePath, pbPassword.Password);

                    TabContent tc1 = new TabContent(header0, gr);
                    mw.AddTabablzData(header0, tctrl, tc1);

                    mw.sbiSelectedMenuOption.Content = header0;
                }
                else if (result == MessageDialogResult.Negative)
                {
                }
            }
        }
Example #2
0
        /// <summary>
        /// Open wizard what will be next step
        /// You need to send generated .csr file to internal or external certificate authority to generate certificate base on data inside
        /// certificate request file (.csr)
        /// To test generated .csr file you can generate selfsign certificate file that can act as CA root and use it to signe certificate
        /// request and ganerate new certificate base on data inside certificate request (.csr) file.
        /// If you wish to use generate certificate file inside internal network, tehnicaly speaking you can use selfsign CA generate certificate
        /// file for that purpose. You need to import generate CA root certificate file to Trusted Root Certification Authorities inside
        /// certification store and everithing will be work fine for certificate generated base on certificate request and signed with generated
        /// CA root certificate from inside menu option "Create SelfSign Cert."
        /// Show dialog with following options:
        /// 1.Send to CA   - this option will close dialog and show message: "You need to send generated certificate request file to internal or external CA authority for sign request"
        /// 2.Sign localy  - this option will open new dialog: "Do you already have generated root CA certificate or not?" (Yes / No)
        /// 3.Cancel       - this option clos current dialog and return to current form
        /// ----------------------------------------------------------------------------------
        /// For option 2.:
        /// If answer is Yes -> open new form from menu option "Issue Certificate"
        /// If naswer is No -> open new form from menu option "Create SelfSign Cert." (with value "Is this CA certificate:"=Yes)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void btnContinue_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(requestFileNamePath) && File.Exists(requestFileNamePath))
            {
                MetroWindow metroWin   = (MetroWindow)Application.Current.MainWindow;
                var         mySettings = new MetroDialogSettings()
                {
                    AffirmativeButtonText     = "Send to CA authority",
                    NegativeButtonText        = "Cancel",
                    FirstAuxiliaryButtonText  = "Sign locally-Don't have CA cert",
                    SecondAuxiliaryButtonText = "Sign locally-Have CA cert",
                    ColorScheme = MetroDialogColorScheme.Theme
                };
                MessageDialogResult result = await metroWin.ShowMessageAsync("INFO",
                                                                             "You need to send generated .csr file to internal or external certificate authority to" + "\n" +
                                                                             "generate certificate based on data inside certificate request file (.csr) => 'Send to CA authority'" + "\n\n" +
                                                                             "To test generated .csr file you can generate self sign certificate file that can act as CA root and use it to sign certificate" + "\n" +
                                                                             "request and generate new certificate based on data inside certificate request (.csr) file  => 'Sign locally - Don't have CA cert'" + "\n\n" +
                                                                             "If you wish to use generate certificate file inside internal network, technically speaking you can use self-sign CA generate certificate" + "\n" +
                                                                             "file for that purpose. You need to import generate CA root certificate file (inside menu option 'Create SelfSign Cert.')" + "\n" +
                                                                             "to Trusted Root Certification Authorities inside certification store and everything will be work fine" + "\n" +
                                                                             "for certificate generated base on certificate request and signed with generated CA root certificate." + "\n\n" +
                                                                             "If you already have generated certificate for CA root authority you can sign request with that certificate => 'Sign locally - Have CA cert'",
                                                                             MessageDialogStyle.AffirmativeAndNegativeAndDoubleAuxiliary, mySettings);

                if (result == MessageDialogResult.Affirmative)
                {
                    mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "OK",
                        ColorScheme           = MetroDialogColorScheme.Theme
                    };
                    result = await metroWin.ShowMessageAsync("Info",
                                                             "You need to send generated .csr file " + tbRequestName.Text + "\n" +
                                                             " to internal or external certificate authority to" + "\n" +
                                                             "generate certificate based on data inside certificate request file (.csr)" + "\n\n" +
                                                             "After that you need to start menu option 'Create Certificate' to generate certificate file" + "\n" +
                                                             "that conatin public key file (.cer), that generated by CA root authority base on request file (.csr)" + "\n" +
                                                             "and private key file (.key): " + tbPrivateKeyName.Text + "\n\n" +
                                                             "New generate file fith private+public key (.pfx) optinal can contain public key from CA root authority ",
                                                             MessageDialogStyle.Affirmative, mySettings);
                }
                else if (result == MessageDialogResult.Negative)
                {
                    int a = 1;
                }
                else if (result == MessageDialogResult.FirstAuxiliary)
                {
                    // open menu "Create SelfSign Cert."
                    MainWindow mw = new MainWindow();

                    string header0 = "Create SelfSign Cert.";
                    IEnumerable <TabablzControl> tctrl;
                    mw.GetTabablzData(out header0, out tctrl);
                    header0 = "Create SelfSign Cert.";

                    GenerateSelfSign gr = new GenerateSelfSign(mw.certFriendlyName, true, requestFileNamePath, requestFileNamePrivateKeyPath);

                    TabContent tc1 = new TabContent(header0, gr);
                    mw.AddTabablzData(header0, tctrl, tc1);
                    mw.sbiSelectedMenuOption.Content = header0;
                }
                else if (result == MessageDialogResult.SecondAuxiliary)
                {
                    // open menu "Issue Certificate"
                    MainWindow mw = new MainWindow();

                    string header0 = "Issue Certificate";
                    IEnumerable <TabablzControl> tctrl;
                    mw.GetTabablzData(out header0, out tctrl);
                    header0 = "Issue Certificate";

                    GenerateSignRequest gr = new GenerateSignRequest(mw.certFriendlyName, requestFileNamePath, requestFileNamePrivateKeyPath);

                    TabContent tc1 = new TabContent(header0, gr);
                    mw.AddTabablzData(header0, tctrl, tc1);

                    mw.sbiSelectedMenuOption.Content = header0;
                }
            }
        }