Recently I have taken an interest in network communication more so than usual. Particular interests in secure network communications. With that being said, I have recently started on a small project dubbed "f42r". The given name is so because I had no idea what I was going to make when I started, or where it will be going - if it goes anywhere.
Currently, f42r is a cryptochat service. It is a single program that can be configured to run as a client or a server when it is started.
The server simple communicates all messages from one client to all other clients connected to it. The server is also configured on startup with a dh file, key file, and a public key file for ssl based communications with each client.
The client simply connects to and verifies the server. The server is verified as per RFC2818 despite the fact it does not use HTTP or HTTPS. From there, messages can be sent from the client application (running as a simple console application) to the server. These messages are sent to all clients connected to the server.
There is no data storage for these servers, all configuration is defined at run time and clients get to define their own name for each client instance they start up.
There is also some attempt at cross platfrom compatibility; however, the program has only been compiled in Visual Studio 2013 and its relative compiler and run on a 64-bit Windows OS.
Another small feature, done as experiments in OS APIs, is the InfoHarvester class. This guy, upon load, gathers miscellaneous information about the computer that the client is running on, then sends this data to the server being connected to. I was planning on using this feature to create hardware based identities.
Currently, the project is on github, found here: https://github.com/hollsteinm/f42r
As a warning, the project uses Boost and OpenSSL as mentioned in the Readme.