Secure License Manager (SLM) provides a simple, yet flexible way to implement licensing, protection and activation to your applications and components. SLM uses strong cryptography techniques to provide secure protection to your applications and components. SLM uses a public/private key cryptography to generate the different types of license keys. When a new license configuration is created, a unique private and public keys are generated for it.
The private key is used to generate license keys and a validation key that is derived from the public key is used for validating license keys on the end user's environment. The license configuration key(private key) should be stored in a secure location and must not be shared or distributed while the validation key (public key) can be distributed as part of your application or component that will perform license key validation on the ender user's machine.
Figure 1. Licensing Overview.
The figure above shows licensing implementation using Secure License Manager. To implement licensing, you need to create a license configuration. A new license configuration can be created or it can be created from an existing public/private key. After creating a license configuration, you can generate one or more license keys for a specific license configuration. These license keys are sent to the end user during trial or purchase of your product and the end user activates your license key to acquire an "activated or unlocked" license that can be validated.
Currently, two types of license keys are supported. Activation license keys and unlock license keys. Unlock license keys can be activated or unlocked on the end user's environment by just using the validation key of the license configuration that was used to generate the license key. Activation license keys, however, require communication with a license activation service to activate the license key on the end user's environment. Activation license keys provide additional security because it allows you to control the number of times a license key can be used for activation and whether a license key is valid or not.
Therefore, the choice between Activation or Unlock license keys depends on your licensing need. If you would like to have control over every license key activation and maintaining a license web service is not an overhead, then an activation license key is a good option. However, if your preference is to have license keys that can be validated at any time without any dependency on an external web service, then unlock keys are better fit in this case. Commonly, activation license keys are used by standalone desktop and web application that provide direct user interface elements to the end user. Unlock keys are commonly used in redistributable components and libraries that get embedded in another application.