static IntPtr OnAuthSslServerTrustPrompt (ref IntPtr cred, IntPtr baton, string realm, UInt32 failures, ref LibSvnClient.svn_auth_ssl_server_cert_info_t cert_info, bool may_save, IntPtr pool) { var data = new LibSvnClient.svn_auth_cred_ssl_server_trust_t (); var ci = new CertficateInfo { AsciiCert = cert_info.ascii_cert, Fingerprint = cert_info.fingerprint, HostName = cert_info.hostname, IssuerName = cert_info.issuer_dname, ValidFrom = cert_info.valid_from, ValidUntil = cert_info.valid_until, }; SslFailure accepted_failures; bool ms; if (SslServerTrustAuthenticationPrompt (realm, (SslFailure) failures, may_save, ci, out accepted_failures, out ms) && accepted_failures != SslFailure.None) { data.may_save = ms ; data.accepted_failures = (uint) accepted_failures; cred = apr.pcalloc (pool, data); return IntPtr.Zero; } else { data.accepted_failures = 0; data.may_save = false; cred = apr.pcalloc (pool, data); return GetCancelError (); } }
static IntPtr OnAuthSslServerTrustPrompt (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, uint failures, ref LibSvnClient.svn_auth_ssl_server_cert_info_t cert_info, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool) { LibSvnClient.svn_auth_cred_ssl_server_trust_t data = new LibSvnClient.svn_auth_cred_ssl_server_trust_t (); CertficateInfo ci = new CertficateInfo (); ci.AsciiCert = cert_info.ascii_cert; ci.Fingerprint = cert_info.fingerprint; ci.HostName = cert_info.hostname; ci.IssuerName = cert_info.issuer_dname; ci.ValidFrom = cert_info.valid_from; ci.ValidUntil = cert_info.valid_until; SslFailure accepted_failures; bool ms; if (SslServerTrustAuthenticationPrompt (realm, (SslFailure) failures, may_save != 0, ci, out accepted_failures, out ms) && accepted_failures != SslFailure.None) { data.may_save = ms ? 1 : 0; data.accepted_failures = (uint) accepted_failures; cred = apr.pcalloc (pool, data); return IntPtr.Zero; } else { data.accepted_failures = 0; data.may_save = 0; cred = apr.pcalloc (pool, data); return GetCancelError (); } }