Issue license¶
License files are created from the lccgen command line tool which is built when you build the static License Manager library. There are some ways of defining the license described below. You will always need the secret key from your projects folder to issue new licenses. Examples below assumes you have the projects and the install folder besides each other.
Different types of licenses¶
The most useful below
With hardware ID (bounded to one display)
Without hardware ID (can be copied to multiple displays, could be used as a demo license)
With time limit
Without time limit
With certain features
Without any features set
You can combine some of the types above
Useful arguments to key generator¶
-e [ --valid-to ] arg Specify the expire date for this license.
Format YYYYMMDD. If not specified the
license won't expire
-s [ --client-signature ] arg The signature of the hardware that
requires the license. It should be in the
format XXXX-XXXX-XXXX. If not specified
the license won't be linked to a specific
hardware (eg. demo license).
-o [ --output-file-name ] arg License output file name. May contain /
that will be interpreded as subfolders.
-f [ --feature-names ] arg Feature names: comma separate list of
project features to enable. if not
specified will be taken as project name.
--primary-key arg Primary key location, in case it is not
in default folder
-p [ --project-folder ] arg (=.) path to where project configurations and
licenses are stored.
this license apply to.
-x [ --extra-data ] arg Specify extra data to be included into
the license
License with hardware ID¶
Will lock this license-file to a specific device
install/bin/lccgen license issue -p projects/ProjectX -s AKAa-UA6C-j78= -o ProjectXApp_Display_1.lic
The generated license ProjectXApp_Display_1.lic
can only be used on the display with the hardware ID AKAa-UA6C-j78=
License with time limit¶
License will work until a specific date in the example below the license file will be valid until 2023-12-24.
install/bin/lccgen license issue -p projects/ProjectX -e 20231224 -o ProjectXApp_Display_Timelimit.lic
License with feature¶
In example below, lets assume your software has two features you want to enable, called feature1 and feature3. Features are listed as a comma separated list, don’t put space after commas.
install/bin/lccgen license issue -p projects/ProjectX -f feature1,feature3 -o ProjectXApp_features.lic
When validating a license you can check for features.
Combine the above¶
A time limited license with specific features bound to a specific device.
install/bin/lccgen license issue -p projects/ProjectX -e 20230801 -f feature1,feature3 -s AKAa-UA6C-j78= -o Limited_Display_1.lic
Why project map is important (with secret/public keys)¶
When building the LM static lib you got the project folder for your software. Within that structure the private_key.rsa
is stored which is used when you issue new licenses. Without that file you cannot issue any more licenses. Normally you point out the project folder as in the examples above assuming you named it ProjectX
. You can also use the argument like below to pick the private key.
install/bin/lccgen license issue --primary-key projects/ProjectX/private_key.rsa -o DemoLicense.lic
Issue license from any computer¶
The minimal setup for generating licenses would be having the key generator lccgen and a copy of the private key from the projects folder.
Having the private key in the same folder as lccgen you would not need to provide the path to it via the -p or –primary-key parameter in lccgen. It defaults to private_key.rsa in the same folder.