This is an ongoing project to write an authentication layer for an existing application which is installed at multiple sites around the world.
The task is to ensure that the applications are properly licensed, which is currently carried out using a local license file. Using a central server process will allow more flexibility but also give more assurance that the applications are being used in accordance with the agreed license.
The application uses C and C++ for the core processes (Python is used for the GUI processes). This part of the application uses C++. The project will provide a server process to handle the authentication – this will store authentication data in a lightweight SQLite database. The database will be replicated using SymmetricDS, allowing a client to authenticate periodically against any of a number of servers.
The project will also provide a client process, implemented as C++ classes, to carry out initial registration and ongoing authentication. The client process needs to run on both Linux and Windows platforms, so the code has to cross compile for both targets
Skills used: C++; SSL; SQLite; SymmetricDS; Ubuntu Linux; mxe.cc cross compiler