protected Connection(CertificatesStorage trustedCertificates, X509Certificate2 certificate, Logger logger) { _trustedCertificates = trustedCertificates; _localCertificate = certificate; _state = ConnectionState.Disconnected; _logger = logger; }
public AsyncClient(UserId id, CertificatesStorage trustedCertificates, X509Certificate2 certificate, IApi api, IClientNotifier notifier, Logger logger) : base(trustedCertificates, certificate, logger) { Id = id; _api = api; _requestQueue = new RequestQueue(api); _requestQueue.Error += OnRequestQueueError; _notifier = notifier; _reconnect = true; _reconnecting = false; _logger = logger; }
public static CertificateStatus GetCertificateValidationStatus(X509Certificate2 certificate, CertificatesStorage trustedCertificates) { var chain = new X509Chain(); chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; if (!chain.Build(certificate)) { return(CertificateStatus.Untrusted); } else { if (chain.ChainStatus.Any(s => s.Status == X509ChainStatusFlags.UntrustedRoot)) { if (trustedCertificates != null && trustedCertificates.Exist(certificate)) { return(CertificateStatus.Trusted); } else if (certificate.Issuer == certificate.Subject) { return(CertificateStatus.SelfSigned); } else { return(CertificateStatus.Untrusted); } } return(CertificateStatus.Trusted); } }