Components

Components of the License Manager

licensecc

The C++ library with a C api (the part you have to integrate in your software) with minimal external dependencies. This will be the first thing you build.

lccinspector

A license debugger to be sent to the final customer to diagnose licensing problems or for calculating the hardware id before issuing the license.

lccgen

The key generator tool, not depending on any of the other components. When first building the licensecc library the lccgen will be called to produce the projects folder with private and public keys. The public key will be embedded in both the licensecc library and the lccinspector. Via the public key the license files can be verified to be correctly signed.

Projects folder

Generated when building licensecc library. Has the important public and private keys for the named project. A typical file structure would be as follows. Note, you should name your own project to something better than DEFAULT.

projects  
	└── DEFAULT       #(your project name)  
	    ├── include  
	    │   └── licensecc
	    │       └── DEFAULT
	    │           ├── licensecc_properties.h
	    │           └── public_key.h
	    ├── licenses
	    │   └── test.lic
	    └── private_key.rsa

libcc-hw-id.a

A static library with crosscontrol implementation of generating the client-signature a.k.a. hardware ID on the iMX8 platform.

Generated license file

Below an example of a time limited license bounded to a specific device with two features you could query for when validating the license file

[FEATURE1]
lic_ver = 200
client-signature = AKH8-hw7Y-lpc=
valid-to = 2023-12-24
sig = FYSS2pZezhEevod+4rFDTVJgIXfqQH/dPzk9IpPmtF2m+CCj83S+nY4yQEINanrMGJf0Vsu0Jds2qDpQvgoQq3AZYyrTi/tFNqEYkAr19jieydAr1KENeCaUGZHtbBUdvxMlck685idV4gfXa7NwtJId26MXIrfpGr2qQd
UJbYU=

[FEATURE2]
lic_ver = 200
client-signature = AKH8-hw7Y-lpc=
valid-to = 2023-12-24
sig = rL3TOfkjgwa3wlJ2LICxrLOJbC6y3e9VVlkDxlJ/yKMihoamd1ol+znk9cLOW7z3a2NueVMGiS9ge6Zut+vYh8m1P6Kh3UPpAlLPGI06tneHftfSkOz7AspLkAkUNk5iDhPTjEE7NBOL/c1o6AS0ok6P4Jz4HZ0r9DyuNa
TCokg=

Example with software developed being called CustomerApp

Below an overview of the components and how they relate to each other Infrastructure