public Connection(string host, int port, string p12File, string p12FilePassword, BlockingQueue<Notification> queue, Archive archive, Service service) { this.service = service; if (string.IsNullOrEmpty(p12FilePassword)) cert = new X509Certificate2(System.IO.File.ReadAllBytes(p12File), "", X509KeyStorageFlags.MachineKeySet); // TODO not tested else cert = new X509Certificate2(System.IO.File.ReadAllBytes(p12File), p12FilePassword, X509KeyStorageFlags.MachineKeySet); certCollection = new X509CertificateCollection(); certCollection.Add(cert); tcpClient = new TcpClient(host, port); stream = new SslStream(tcpClient.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), new LocalCertificateSelectionCallback(SelectLocalCertificate)); stream.AuthenticateAsClient(host, certCollection, System.Security.Authentication.SslProtocols.Ssl3, false); if (!stream.IsMutuallyAuthenticated || !stream.CanWrite) { throw new Exception(); } reader = new Reader(this, stream, archive); writer = new Writer(this, stream, queue, archive); }
public NotificationServiceImpl(bool sandbox, string p12File, string p12FilePassword) { service = new Service(sandbox, p12File, p12FilePassword); }