/// <summary> /// Constructor /// </summary> public GenericProxyTemplate() : base() { LocalPort = 1080; Filters = new ProxyFilterFactory[0]; Client = new IpProxyClientFactory(); }
/// <summary> /// Constructor /// </summary> public FixedProxyTemplate() { LocalPort = 10000; Port = 12345; Host = "127.0.0.1"; UdpEnable = false; Client = new IpProxyClientFactory(); Layers = new INetworkLayerFactory[0]; }
private void CloneCertChain(Uri url, string destination) { IProxyClientFactory factory = proxyClientControl.Client; if (factory == null) { factory = new IpProxyClientFactory(); } ProxyClient client = factory.Create(new Logger()); collection = new X509Certificate2Collection(); using (IDataAdapter adapter = client.Connect(new IpProxyToken(null, url.Host, url.Port, IpProxyToken.IpClientType.Tcp, false), new Logger(), new Nodes.MetaDictionary(), new Nodes.MetaDictionary(), new PropertyBag(), new Security.CredentialsManagerService())) { DataAdapterToStream stm = new DataAdapterToStream(adapter); using (SslStream ssl = new SslStream(stm, false, VerifyCallback)) { ssl.AuthenticateAsClient(url.Host); } } if (collection.Count > 0) { File.WriteAllBytes(Path.Combine(destination, String.Format("certchain_{0}.pfx", url.Host)), collection.Export(X509ContentType.Pfx)); int count = 1; foreach (X509Certificate2 cert in collection) { string path = Path.Combine(destination, String.Format("cert_{0}_{1}.cer", url.Host, count++)); File.WriteAllText(path, CertificateUtils.ExportToPEM(cert) + CertificateUtils.ExportToPEM((RSA)cert.PrivateKey, null)); } } }