Protocol Encryption (MSE) has landed!
Big news today, not just for Niagara, but for the whole Mac Bittorrent community - Protocol Encryption has been added to Niagara!
I’ve just committed revision 133, which adds a new protocolencryption.c function library to libniagara, as well as slight modification to the handshake code in peer.c to accommodate the slightly different process. I’ve also extended the stream socket class to incorporate inline RC4 encryption and decryption.
All the crypto functions are from OpenSSL, so the added functionality adds no bloat to Niagara (OpenSSL is installed by default on OS X).
Of course, the big question is “When can I play with it?” The code in SVN isn’t quite ready for primetime yet. Revision 133 establishes a full encrypted connection with compatible clients, but I haven’t quite figured out the finer points of then carrying on with the higher level Bittorrent protocol. The fallback code also isn’t as robust as I’d like. However, given that it took me 4 days to get this far, a release with MSE fully functional should be out the door by this weekend.
You’re welcome to take a look at the changes over at the SVN browser, but please note that unlike the rest of libniagara, the protocol encryption library is licenced under the GPL, rather than the LGPL.
Stay tuned!