public void CreateSubCATest2() { // Setup CaTestHarness.InitialiseCA(true); ICA ca = CaTestHarness.LoadCA(); // Test //string caLocation; Directory.CreateDirectory(CaTestHarness.testHarnessLocation + @"\subCA"); Pkcs10CertificationRequest p10; p10 = CaFactory.CreateSubCA(SysSubCaConfig); Assert.AreEqual("CN=Test subCA Sys", p10.GetCertificationRequestInfo().Subject.ToString()); Assert.IsTrue(p10.Verify()); // Test 2 Profile profile = new Profile(CaTestHarness.testHarnessLocation + @"\subCA.xml"); X509Certificate cert = ca.IssueCertificate(p10, profile); CaFactory.CreateSubCA(CaTestHarness.testHarnessLocation + @"\subCA\CAConfig.xml", cert); ICA subCa = OSCA.OSCA.LoadCA(CaTestHarness.testHarnessLocation + @"\subCA\CAConfig.xml", "foobar"); Assert.AreEqual("CN=Test subCA Sys", subCa.CAName); Assert.IsTrue(subCa.FIPS140Mode); }
public void CreateRootCATest1() { CaTestHarness.InitialiseCA(true); ICA ca = CaTestHarness.LoadCA(); Assert.AreEqual("CN=Test Harness Sys", ca.CAName); Assert.IsTrue(ca.FIPS140Mode); }
public void CreateRootCATest() { CaTestHarness.InitialiseCA(false); ICA ca = CaTestHarness.LoadCA(); Assert.AreEqual("CN=Test Harness BC", ca.CAName); Assert.IsFalse(ca.FIPS140Mode); }
public void ExportToP12Test() { CaTestHarness.InitialiseCA(true); ICA ca = CaTestHarness.LoadCA(); string password = "******"; //byte[] p12 = ca.Backup(password); //File.WriteAllBytes(CaTestHarness.testHarnessLocation + @"\CA\Backup.pfx", p12); //Read in the private key and certificate FileStream p12stream = new FileStream(CaTestHarness.testHarnessLocation + @"\CA\Backup.pfx", FileMode.Open); Pkcs12Store p12in = new Pkcs12Store(p12stream, password.ToCharArray()); Assert.AreEqual("", p12in.GetCertificateAlias(ca.Certificate)); //Assert.IsNotNull(p12in.GetKey().Key); //Assert.AreSame(ca.Certificate, p12in.GetCertificate(ca.CAName.ToString()).Certificate); }
public void CreateSubCATest1() { // Setup CaTestHarness.InitialiseCA(true); ICA ca = CaTestHarness.LoadCA(); // Test string caLocation; Directory.CreateDirectory(CaTestHarness.testHarnessLocation + @"\subCA"); caLocation = CaFactory.CreateSubCA(SysSubCaConfig, ca); Assert.AreEqual(CaTestHarness.testHarnessLocation + @"\subCA\CAConfig.xml", caLocation); // Test 2 ICA subCa = OSCA.OSCA.LoadCA(caLocation, "foobar"); Assert.AreEqual("CN=Test subCA Sys", subCa.CAName); Assert.IsTrue(subCa.FIPS140Mode); }
private static void OpenConnectionFinal(Connection.Info newConnectionInfo, Connection.Info.Force Force, Form ConForm) { try { if (newConnectionInfo.Hostname == "" && newConnectionInfo.Protocol != Protocols.IntApp) { MessageCollector.AddMessage(MessageClass.WarningMsg, Language.strConnectionOpenFailedNoHostname); return; } if (newConnectionInfo.PreExtApp != "") { ExternalTool extA = GetExtAppByName(newConnectionInfo.PreExtApp); if (extA != null) { extA.Start(newConnectionInfo); } } //TODO if (!(((Force & Info.Force.DoNotJump) == Info.Force.DoNotJump) || !SwitchToOpenConnection(newConnectionInfo))) { return; } Base newProtocol; // Create connection based on protocol type switch (newConnectionInfo.Protocol) { case Protocols.RDP: newProtocol = new RDP(); break; case Protocols.VNC: newProtocol = new VNC(); break; case Protocols.SSH1: newProtocol = new SSH1(); break; case Protocols.SSH2: newProtocol = new SSH2(); break; case Protocols.Telnet: newProtocol = new Telnet(); break; case Protocols.Rlogin: newProtocol = new Rlogin(); break; case Protocols.Serial: newProtocol = new Serial(); break; case Protocols.RAW: newProtocol = new RAW(); break; case Protocols.HTTP: newProtocol = new HTTP(newConnectionInfo.RenderingEngine); break; case Protocols.HTTPS: newProtocol = new HTTPS(newConnectionInfo.RenderingEngine); break; case Protocols.TeamViewer: newProtocol = new TeamViewer(); break; case Protocols.RAdmin: newProtocol = new RAdmin(); break; case Protocols.ICA: newProtocol = new ICA(); break; case Protocols.IntApp: newProtocol = new IntApp(); if (newConnectionInfo.ExtApp == "") { throw (new Exception(Language.strNoExtAppDefined)); } break; default: return; } string cPnl; if (((newConnectionInfo.Panel == "") | ((Force & Connection.Info.Force.OverridePanel) == Connection.Info.Force.OverridePanel)) | Settings.Default.AlwaysShowPanelSelectionDlg) { var frmPnl = new frmChoosePanel(); if (frmPnl.ShowDialog() == DialogResult.OK) { cPnl = frmPnl.Panel; } else { return; } } else { cPnl = newConnectionInfo.Panel; } Form cForm = ConForm ?? WindowList.FromString(cPnl); if (cForm == null) { cForm = AddPanel(cPnl); cForm.Focus(); } else { (cForm as UI.Window.Connection).Show(frmMain.Default.pnlDock); (cForm as UI.Window.Connection).Focus(); } Control cContainer = (cForm as UI.Window.Connection).AddConnectionTab(newConnectionInfo); if (newConnectionInfo.Protocol == Protocols.IntApp) { if (GetExtAppByName(newConnectionInfo.ExtApp).Icon != null) { (cContainer as TabPage).Icon = GetExtAppByName(newConnectionInfo.ExtApp).Icon; } } newProtocol.Closed += (cForm as UI.Window.Connection).Prot_Event_Closed; newProtocol.Connected += (cForm as UI.Window.Connection).Prot_Event_Connected; newProtocol.Disconnected += Prot_Event_Disconnected; newProtocol.Connected += Prot_Event_Connected; newProtocol.Closed += Prot_Event_Closed; newProtocol.ErrorOccured += Prot_Event_ErrorOccured; (cForm as UI.Window.Connection).ResizeBegin += newProtocol.ResizeBegin; (cForm as UI.Window.Connection).ResizeEnd += newProtocol.ResizeEnd; (cForm as UI.Window.Connection).Resize += newProtocol.Resize; newProtocol.InterfaceControl = new InterfaceControl(cContainer, newProtocol, newConnectionInfo); newProtocol.Force = Force; if (newProtocol.SetProps() == false) { newProtocol.Close(); return; } if (newProtocol.Connect() == false) { newProtocol.Close(); if (newProtocol is PuttyBase&&!ProblemFixer.IsPuTTYOk()) { ProblemFixer.FixPuTTYProblem(); } if (newProtocol is TeamViewer && !ProblemFixer.IsTeamViewerOk()) { ProblemFixer.FixTVProblem(); } if (newProtocol is RAdmin && !ProblemFixer.IsRAdminOk()) { ProblemFixer.FixRAdminProblem(); } return; } newConnectionInfo.OpenConnections.Add(newProtocol); if (newConnectionInfo.IsQuicky == false) { if (newConnectionInfo.Protocol != Protocols.IntApp) { Node.SetNodeImage(newConnectionInfo.TreeNode, Enums.TreeImage.ConnectionOpen); } else { ExternalTool extApp = GetExtAppByName((string)newConnectionInfo.ExtApp); if (extApp != null) { if (extApp.TryIntegrate) { if (newConnectionInfo.TreeNode != null) { Node.SetNodeImage(newConnectionInfo.TreeNode, Enums.TreeImage.ConnectionOpen); } } } } } } catch (Exception ex) { MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.strConnectionOpenFailed + Constants.vbNewLine + ex.Message); } }
/// <summary> /// Create a new Subordinate CA using the setup parameters from a CAConfig object /// The Issuing CA must be available to create and sign a certificate /// </summary> /// <param name="Config">CAConfig object</param> /// <param name="IssuingCA">Object reference for issuing CA</param> /// <returns>Full pathname of CA config file</returns> public static string CreateSubCA(CAConfig Config, ICA IssuingCA) { if (Config.profile != CA_Profile.SubCA) { throw new ArgumentException("Invalid profile specified", Config.profile.ToString()); } // Serial number BigInteger serialNumber = new BigInteger(1, BitConverter.GetBytes(DateTime.Now.Ticks)); // Key material Pkcs10CertificationRequest p10; if (Config.FIPS140) { privateKeyCapi = SysKeyManager.Create(Config.pkSize, Config.pkAlgo, Config.name); // PKCS#10 Request p10 = new Pkcs10CertificationRequestDelaySigned( Config.sigAlgo, Config.DN, SysKeyManager.getPublicKey(privateKeyCapi, Config.pkAlgo), null); // Signature byte[] buffer = ((Pkcs10CertificationRequestDelaySigned)p10).GetDataToSign(); byte[] signature = SysSigner.Sign(buffer, privateKeyCapi, Config.sigAlgo); ((Pkcs10CertificationRequestDelaySigned)p10).SignRequest(signature); } else { keyPair = BcKeyManager.Create(Config.pkSize, Config.pkAlgo); // Create a system CspParameters entry for use by XmlSigner privateKeyCapi = SysKeyManager.LoadCsp(keyPair.Private); // PKCS#10 Request p10 = new Pkcs10CertificationRequest( Config.sigAlgo, Config.DN, keyPair.Public, null, keyPair.Private); } // Test the signature if (!p10.Verify()) { throw new SignatureException("Cannot validate POP signature"); } // Request cert from issuing CA X509Certificate cert = IssuingCA.IssueCertificate(p10, new Profile.Profile(Config.profileFile)); string configFile; if (Config.FIPS140) { // Create the CA Config file configFile = createFinalCAConfig(Config, serialNumber, cert, null); LogEvent.WriteEvent(eventLog, LogEvent.EventType.CreateCA, "Subordinate CA (FIPS) Created: " + configFile); } else { // Store key material in a PKCS#12 file MemoryStream stream = BcKeyManager.SaveP12(keyPair.Private, cert, Config.password, Config.name); string caKey = Convert.ToBase64String(stream.ToArray()); // Create the CA Config file configFile = createFinalCAConfig(Config, serialNumber, null, caKey); LogEvent.WriteEvent(eventLog, LogEvent.EventType.CreateCA, "Root CA (BC) Created: " + configFile); } // Create CA database Database.CreateDB(Config, cert, privateKeyCapi); return(configFile); }
public CAController() { CA = new CA(); }