/// <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) { } } }
/// <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; } } }