Issue licenses

The easiest way to issue licenses is to enter the project library and create the following project structure: The projects folder can be anyware. We created one in licensecc/projects for your convenience (and for testing purposes). A default project1 named DEFAULT has been created for you when you configured the project with cmake. You can re-configure the project with the LCC_PROJECT_NAME cmake variable to create a new project.

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

Place the lcc executable in your path (this is the executable needed to issue licenses). This executable is compiled together with the library, you should find it somewhere in your build tree or where you installed the library.

The lines below will create a perpetual unlimited license for your software:

cd projects/DEFAULT #(or whatever your project name is) 
lcc license issue -o licenses/{license-file-name}.lic

Licensing software with hardware identifier

To issue a license linked to a specific machine you first need to retrieve an hardware identifier for it. This can be done running an executable in the destination machine (usually it is your own software, that calls licensecc api and prints out the required identifier).

If you are just experimenting the library you can compile and use the examples project to print out such hardware signature or you can run lccinspector in the destination machine.

Once you have the hardware identifier you can issue the command:

cd projects/DEFAULT #(or whatever your `lcc-project` is) 
lcc license issue --client-signature XXXX-XXXX-XXXX -o licenses/{license-file-name}.lic

to create the license file (usually this command is issued in the host machine where you compiled licensecc).

Full set of options

A good way to start exploring available options is the command: lcc license issue --help

Parameter Description
base64,b the license is encoded for inclusion in environment variables
valid-from Specify the start of the validity for this license. Format YYYY-MM-DD. If not specified defaults to today.
valid-to The expire date for this license. Format YYYY-MM-DD. If not specified the license won't expire
client-signature The signature of the hardware where the licensed software will run. It should be in the format XXXX-XXXX-XXXX. If not specified the license won't be linked to a specific pc.
output-file-name License output file path.
extra-data Application specific data. They'll be returned when calling the acquire_license method
feature-names Comma separated list of features to license. See multi-feature discussion.

Note: 1 a project is a container for the customizations of licensecc. In special way its keys and build parameters. The name should reflect the name of the software you want to add a license to. The project name appears in the license file.