<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 18, 2014 at 6:33 AM, Edward Ned Harvey (mono) <span dir="ltr"><<a href="mailto:edward.harvey.mono@clevertrove.com" target="_blank">edward.harvey.mono@clevertrove.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> From: Sebastien Pouliot [mailto:<a href="mailto:sebastien.pouliot@gmail.com">sebastien.pouliot@gmail.com</a>]<br>
<div class="">><br>
>>                         var mySslStream = new SslStream (client.GetStream(), false,<br>
>> ValidateServerCertificate);<br>
><br>
> if you read the source [1] (or look at the API compatibility page [2]) you'll see<br>
> that this .ctor is decorated with<br>
><br>
> [MonoTODO ("userCertificateValidationCallback is not passed X509Chain and<br>
> SslPolicyErrors correctly")]<br>
><br>
> Changing it to<br>
><br>
> var mySslStream = new SslStream (client.GetStream(), false);<br>
><br>
> *and* having run `mozroots` will work.<br>
<br>
</div>Thank you for this information, but it causes me an equally significant problem.  I need to accept the server cert if it passes validation with mozroots, but if that fails, then I need to get user input to determine if they'll accept the cert.<br>

<br>
I guess the best way to do this will be to first create the SslStream and AuthenticateAsClient, and  simply wait to see if it succeeds.  If it fails, then throw it away, create a new SslStream with RemoteCertificateValidationCallback, and ignore the X509Chain and  SslPolicyErrors, just simply present the certificate to user.<br>

<br>
Any better ideas?<br></blockquote><div><br></div><div>Contribute! :-)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thanks again, for your very prompt and helpful response.   :-)<br>
</blockquote></div><br></div></div>