Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
 private X509Certificate Selection(object sender, string targetHost, X509CertificateCollection localCertificates, X509Certificate remoteCertificate, string[] acceptableIssuers)
 {
     return(localCertificates.Cast <X509Certificate>().First());
 }