License C++ lib. Easy way to add licensing in your application
License C++ library version 1.1.4 offers a licensing feature for C++ applications.
We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.
License C++ library version 1.1.4 offers a licensing feature for C++ applications.
We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.
License C++ library version 1.1.4 offers a licensing feature for C++ applications.
We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.
Purchase options
You can buy the software by bank transfer.. Bank transfer available only for companies. To buy software by bank transfer please send us request to info@constantrobotics.com. Also, you can buy technical support service for this product.
Overview
License C++ library offers a licensing feature for C++ applications. The library provides functions for generating a token (base on username and MAC address of the computer), creating a license based on it, and validating the license with control of its validity time. AES256 encryption method is implemented. To embed licensing in a C++ application, generate a token, then based on the token and the required number of days generate a license string (key). License checking in the application is performed by a single library function. The library doesn't have any third-party dependencies and provide simple interface. It uses C++17 standard and compatible with Linux and Windows.
Downloads
Programmer’s manual: DOWNLOAD
Simple interface
#include <iostream>
#include "License.h"
int main(void)
{
std::cout << "LicenseGenerator v" <<
cr::utils::License::getVersion() << std::endl;
// Set user name to generate license.
std::string userName = "";
std::cout << "Enter the UserName to generate license: ";
std::cin >> userName;
// Set license duration.
int days = 0;
std::cout << "Enter license duration [days]: ";
std::cin >> days;
// Create License object and generate token for license.
cr::utils::License lic;
std::string token = lic.getToken(userName);
std::cout << "Token for " << userName << ": " <<
token << std::endl;
// Generate license.
std::string license = "";
if (!lic.getLicense(token, days, license))
{
std::cout << "Invalid token for " <<
userName << " !" << std::endl;
return -1;
}
// Check license.
if (!lic.checkLicense(license, userName))
{
std::cout << "Invalid license for " <<
userName << " !" << std::endl;
return -1;
}
// Show license.
std::cout << "License for " << userName <<
"[" << days << " days]: " << license << std::endl;
// Wait user input.
std::cin.get();
std::cin.get();
return 1;
}
Token string generation
std::string userName = "AnyUserName"; // Set by user.
cr::utils::License lic;
std::string token = lic.getToken(userName);
License string generation based on token
std::string license = ""; // Variable to store license string.
std::string token =
"0255D7EE2DFCFF80..."; // Example.
int days = 20; // License for 20 days, example.
if (!lic.getLicense(token, days, license))
{
std::cout << "Invalid token for " <<
userName << " !" << std::endl;
return -1;
}
License validation
std::string license =
"EE8C15F833832FF0BD..."; // Example.
std::string userName = "AnyUserName";
cr::utils::License lic;
if (!lic.checkLicense(license, userName))
{
std::cout << "Invalid license for " <<
userName << " !" << std::endl;
return -1;
}
std::cout << "License valid!" << std::endl;