A C++-based license management system that provides functions for license generation, validation, and device fingerprint identification.
- Uses asymmetric encryption for license signing and verification
- Generates unique device fingerprint identifiers
- Supports reading and writing license files
- Provides singleton pattern for key loading management
- Crypto: Provides RSA-based signing and verification capabilities
- DeviceFingerprint: Collects hardware information to generate device fingerprints
- LicenseManager: Core class managing the license lifecycle
// Initialize the license manager
auto manager = LicenseManager::Instance("privateKeyPath", "publicKeyPath");
// Generate a license
LicenseInfo info;
info.deviceFingerprint = DeviceFingerprint().generateFingerprint();
info.validStart = 1693440000;
info.validEnd = 1725036800;
std::string licenseCode = manager->generateLicenseCode(info);
// Verify a license
LicenseInfo verifiedInfo;
std::string fingerprint = DeviceFingerprint().generateFingerprint();
bool isValid = manager->verifyLicense(licenseCode, verifiedInfo, fingerprint);- C++17 compatible compiler
- OpenSSL development library
- CMake 3.14+
- Install dependencies:
sudo apt-get install libssl-dev cmake - Create build directory:
mkdir build && cd build - Configure project:
cmake .. - Build project:
make
This project uses the MIT License. See the LICENSE file for the complete license agreement.