<div dir="ltr">Hello Edward,<div><br></div><div>I certainly have not run the tests, but I can not speak for others over the years.</div><div><br></div><div>I appreciate the test that you wrote, and I have CCed Alex that is working on this space now.   </div><div><br></div><div>Miguel</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 5, 2015 at 8:45 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: Miguel de Icaza [mailto:<a href="mailto:miguel@xamarin.com">miguel@xamarin.com</a>]<br>
><br>
> • We are setting up a more comprehensive harness for SSL/TLS tests that do<br>
<span class="">> not depend on remote servers.<br>
<br>
</span>This is much appreciated, thank you very much.  There is one thing you didn't mention:<br>
<br>
As far as I can tell, no mono developer has ever tested the real world use case of SslStream.AuthenticateAsServer with an intermediate cert connecting to SslStream.AuthenticateAsClient.  As far as I can tell, no mono developer has ever bothered to run the test I provided in the pull request.  The end result is that mono's implementation of SslStream.AuthenticateAsServer is simply broken, not usable, has never worked, still broken today.  I have a dirty hacked fork of mono that made it work, but those changes not suitable for pull into mono (see: dirty, hacked).<br>
<br>
If it helps, I wrote a script that automates the creation of a root CA, intermediate, and signing of a server cert, suitable to be used in such a test.  Even if the script doesn't get run automatically in the build process, it's perfectly acceptable to generate certs in advance and hard-code them into the tests, as is done in existing pull-request test today.<br>
<br>
The script is here:<br>
<a href="https://github.com/rahvee/MonoSslStreamServerBug/blob/master/certs/junkca.sh" target="_blank">https://github.com/rahvee/MonoSslStreamServerBug/blob/master/certs/junkca.sh</a><br>
<br>
And having used the above script to generate some certs, a hard-coded result is stored here:<br>
<a href="https://github.com/rahvee/mono/commit/02ae92b34f47779c1962d38ffdcf6e732f10b063#diff-05497f49a91426be05c25bbebc4e3a59R59" target="_blank">https://github.com/rahvee/mono/commit/02ae92b34f47779c1962d38ffdcf6e732f10b063#diff-05497f49a91426be05c25bbebc4e3a59R59</a><br>
<br>
There is no reasonable reason to expect it to ever work, if it's not tested.<br>
</blockquote></div><br></div>