Encryption is done with libgcrypt on both the client and CGI script. The same base64.cpp/.h is used on both the client and CGI script and is copyright (C) 2013 Adam Rudd. The CGI script uses the CGIC library, a lightweight C CGI library, copyright 1996-2014 by Thomas Boutell.
My first “serious” foray into C++. Compared to Java, which feels clean and elegant to me, C++ feels cluttered and untidy. Although that’s possibly just because I’m new to it. I wrote 1,000 lines of C++ for the client and 500 lines of C for the CGI script.