public delegate bool CertificateValidationCallback(
X509Certificate certificate,
int[] certificateErrors);
- public delegate bool CertificateValidationCallback2 (Mono.Security.X509.X509CertificateCollection collection);
+
+ public class ValidationResult {
+ bool trusted;
+ bool user_denied;
+ int error_code;
+
+ public ValidationResult (bool trusted, bool user_denied, int error_code)
+ {
+ this.trusted = trusted;
+ this.user_denied = user_denied;
+ this.error_code = error_code;
+ }
+
+ public bool Trusted {
+ get { return trusted; }
+ }
+
+ public bool UserDenied {
+ get { return user_denied; }
+ }
+
+ public int ErrorCode {
+ get { return error_code; }
+ }
+ }
+
+ public delegate ValidationResult CertificateValidationCallback2 (Mono.Security.X509.X509CertificateCollection collection);
public delegate X509Certificate CertificateSelectionCallback(
X509CertificateCollection clientCertificates,
get { return ServerCertValidation2 != null; }
}
- internal override bool OnRemoteCertificateValidation2 (Mono.Security.X509.X509CertificateCollection collection)
+ internal override ValidationResult OnRemoteCertificateValidation2 (Mono.Security.X509.X509CertificateCollection collection)
{
CertificateValidationCallback2 cb = ServerCertValidation2;
if (cb != null)
return cb (collection);
- return false;
+ return null;
}
internal override bool OnRemoteCertificateValidation(X509Certificate certificate, int[] errors)
return base.RaiseRemoteCertificateValidation(certificate, certificateErrors);
}
- internal virtual bool RaiseServerCertificateValidation2 (Mono.Security.X509.X509CertificateCollection collection)
+ internal virtual ValidationResult RaiseServerCertificateValidation2 (Mono.Security.X509.X509CertificateCollection collection)
{
return base.RaiseRemoteCertificateValidation2 (collection);
}