gcontini
2020-10-24 7e4e14dde5fbfade46311fbf75386d5371062d7d
doc/usage/issue-licenses.md
@@ -17,7 +17,8 @@
    └── private_key.rsa
```
Let's suppose the `lcc` executable is in your path. If not you should find it in your build tree, or wherever you installed the library.
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:
@@ -26,18 +27,35 @@
lcc license issue -o licenses/{license-file-name}.lic
```
A good way to start exploring available options is the command:
`lcc license issue --help`
## 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 project name is)
lcc license issue --client-signature XXXX-XXXX-XXXX -o licenses/{license-file-name}.lic
```
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 YYYYMMDD. If not specified defaults to today. |
|valid-to          | The expire date for this license. Format YYYYMMDD. If not specified the license won't expire |
|client-signature  | The signature of the pc that requires the license. It should be in the format XXXX-XXXX-XXXX-XXXX. If not specified the license won't be linked to a specific pc. |
|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:
<sup>1</sup> a project is a container for the customizations of open-license-manager. 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.