private bool checkServerIdentity(Mono.Security.X509.X509Certificate cert) { string targetHost = this.Context.ClientSettings.TargetHost; Mono.Security.X509.X509Extension extension = cert.Extensions["2.5.29.17"]; if (extension != null) { SubjectAltNameExtension altNameExtension = new SubjectAltNameExtension(extension); foreach (string dnsName in altNameExtension.DNSNames) { if (TlsServerCertificate.Match(targetHost, dnsName)) { return(true); } } foreach (string ipAddress in altNameExtension.IPAddresses) { if (ipAddress == targetHost) { return(true); } } } return(this.checkDomainName(cert.SubjectName)); }
private bool checkServerIdentity(Mono.Security.X509.X509Certificate cert) { ClientContext clientContext = (ClientContext)base.Context; string targetHost = clientContext.ClientSettings.TargetHost; Mono.Security.X509.X509Extension x509Extension = cert.Extensions["2.5.29.17"]; if (x509Extension != null) { SubjectAltNameExtension subjectAltNameExtension = new SubjectAltNameExtension(x509Extension); foreach (string pattern in subjectAltNameExtension.DNSNames) { if (TlsServerCertificate.Match(targetHost, pattern)) { return(true); } } foreach (string a in subjectAltNameExtension.IPAddresses) { if (a == targetHost) { return(true); } } } return(this.checkDomainName(cert.SubjectName)); }
private bool checkDomainName(string subjectName) { ClientContext context = (ClientContext)this.Context; string empty = string.Empty; MatchCollection matchCollection = new Regex("CN\\s*=\\s*([^,]*)").Matches(subjectName); if (matchCollection.Count == 1 && matchCollection[0].Success) { empty = matchCollection[0].Groups[1].Value.ToString(); } return(TlsServerCertificate.Match(context.ClientSettings.TargetHost, empty)); }
private bool checkDomainName(string subjectName) { ClientContext clientContext = (ClientContext)base.Context; string pattern = string.Empty; Regex regex = new Regex("CN\\s*=\\s*([^,]*)"); MatchCollection matchCollection = regex.Matches(subjectName); if (matchCollection.Count == 1 && matchCollection[0].Success) { pattern = matchCollection[0].Groups[1].Value.ToString(); } return(TlsServerCertificate.Match(clientContext.ClientSettings.TargetHost, pattern)); }