private X509Certificate SelectLocalCertificate(Object sender, String targetHost, X509CertificateCollection localCertificates, X509Certificate remoteCertificate, String[] acceptableIssuers) { if (localCertificates.Count == 1) { Tracer.Info("Found only one matching cert. skip CE compare"); return(localCertificates[0]); } if (localCertificates.Count <= 1 || _stompConnectionSettings.TransportSettings.SslSettings.ClientCertSubject == null) { return(null); } var match = localCertificates .Cast <X509Certificate2>() .FirstOrDefault( certificate => String.Compare(certificate.Subject, _stompConnectionSettings.TransportSettings.SslSettings.ClientCertSubject, StringComparison.OrdinalIgnoreCase) == 0); if (match == null && Tracer.IsWarnEnabled) { Tracer.Warn($"Found no matching cert. with Subject '{_stompConnectionSettings.TransportSettings.SslSettings.ClientCertSubject}'"); } return(match); }
private X509Certificate Selection(object sender, string targetHost, X509CertificateCollection localCertificates, X509Certificate remoteCertificate, string[] acceptableIssuers) { return(localCertificates.Cast <X509Certificate>().First()); }