Heh, everybody else is busy bringing something on the table. I hope I too get to participate more in the future. :)
@ReubenBond It's been a long time since I've fiddled with certs and sockets, but I'll see if I can come up with something noteworthy.
A few issues are revokation and how to store certs.
For instance, how it's done in Azure (Azure Vault?) and how should the certificates be stored. Should X509Store supported.aspx) be offered as choice? I think I wrote in the issue I don't see foresee big problems, but that's only because I thought about this "simply" and not everything one might want to include, such as revokation. Maybe the smartest thing is implement something simple and forgo deeper analysis on exactly what are the ramifications of decisions.
For the first iteration, I will just require that thumbprints match with option to validate against the windows cert store
The TLS part itself is fairly easy, but the issue is integrating it into Orleans. I'm part-way through that. Orleans uses its own buffer pooling which is amenable to Socket, but I need to work with Streams
So... this might require some work. Possibly I will replace Orleans' buffer pool with RecyclableMemoryStream, or maybe I will manually interface with the buffer pool. It's a shame that Streams cannot read into an IList<ArraySegment<byte>> like Socket can
If each array in the pool is approx 1400 bytes (or whatever the eth interfaces frame size is), then it should be fine to use a single array per read
@ReubenBond Sorry for dumping you here, multiple channels. :)
RecyclableMemoryStream feels like one of the libraries that would be usable in wider range of scenarios.