TLS / SSL options for Helios over TCP
Aaronontheweb opened this issue · comments
Reviewing some options for bringing TLS / SSL support to TCP sockets for Helios 2.0.
The implementations thus far look like:
SslStream
upon accept / connect for inbound / outbound sockets. Could be implemented as aIChannelHandler
that operates at the stage closest to the socket, or could be an implementation detail of theITransport
itself. Looks likeSslStream
will still work with asynchronous socket operations.- Use Bouncy Castle's third party libraries for implementing TLS; there's not a lot of documentation for the libraries in C# (it's the Java ones by the same project that are most popular) but it looks like they depend on OpenSSL for some of the keystore work underneath the hood. The downside of this option is that, well, it's a third-party library we have to depend on it and we can't really say how well it works. Upside is that it supports DTLS, which would give us a security option for UDP.
Source for Bouncy Castle latest: https://github.com/bcgit/bc-csharp