halo
halo copied to clipboard
Secure communication with `libssh`
Obviously security is a major concern for Halo when operating over the Internet or some untrusted local network. It seems the most straightforward way to have both authentication and encryption is to switch over to communicating via libssh
.
The tutorial for C code is here: http://api.libssh.org/master/libssh_tutor_forwarding.html
In particular, there's a pretty easy-to-use C++ wrapper which is summarized here (see the Channel class in particular): http://api.libssh.org/master/group__ssh__cpp.html
There is a way to make non-blocking reads and/or polling. This will may end up replacing all of the Boost.Asio code dealing with TCP/IP since the data will probably have to go through libssh
's API.