Using Trigger Codes for Telephone Activations

Trigger code validation is a means of achieving software activation through the manual exchange of numeric values (in other words, it is a challenge-response mechanism). Allowing activation through manually exchanged numeric codes is convenient when you need to be able to activate remote systems which lack Internet connectivity, as it is easy to exchange these codes via a telephone call, text messages, etc... Trigger Codes are only capable of carrying a very limited, numeric payload, but this limitation is easily overcome by coupling trigger code validation with the downloadable license file (which can contain any and all license data).

Important

Keep in mind that any challenge-response mechanisms such as trigger code validation can be reverse engineered (similar to how "key generators" are available on the Internet for many popular software applications). Therefore, it is best to use Protection PLUS 5 SDK's standard online and manual activation features when possible, which offer much stronger security than trigger codes.

Overview of Trigger Codes

The Basics

Below is an example of the kind of screen your users will see when activating manually using trigger codes.

The trigger code activation process is as follows:

  1. The protected application shows a dialog similar to the one shown above. In some cases, you may wish to ask your users to enter a License ID and password, which could be stored and used for online validation at a later time.
  2. The user contacts you or your company, and provides the User Code 1 and User Code 2 values displayed on the activation dialog.
  3. You (or your company) generate and respond to the user with the Activation Code value(s).
  4. The protected application validates the Activation Code(s), and alters its license as appropriate.

The Bits and Pieces

A summary of the different pieces of information used in trigger code processing is below.  This will help you establish a more complete understanding of how trigger codes work.

Important

When using activation with SOLO Server, the Trigger Code Seed and RegKey2 Seed values in your application's source code must match in all relevant product options configured in SOLO Server (which may be used to create License IDs used to activate your application over the Internet).

Trigger Code Seed
This is the "seed" value used when generating Activation Code 1. Typically, this value should be unique between each of your products/applications so that you may prevent them from being cross-activated. (In other words, using a unique Trigger Code Seed value for each product prevents activation codes generated for "Product A" from being used to activate "Product B"). The value specified must be a number between 1 and 65535.  When allowing activation through SOLO Server, your application's source code and the corresponding product option(s) in SOLO Server must have matching values.
RegKey2 Seed
This is the "seed" value used when generating Activation Code 2. Typically, this value is also unique between each of your products/applications so that you may prevent them from being cross-activated. The value specified must be a number between 1 and 255. When allowing activation through SOLO Server, your application's source code and the corresponding product option(s) in SOLO Server must have matching values.
Trigger Code Number
A Trigger Code Number is simply a number between 1 and 50, which defines the action(s) which will be taken when Activation Code 1 is successfully validated on your customer's computer. When a customer requests activation, you or your company is responsible for selecting the appropriate trigger code number when generating the activation code(s).  (When using SOLO Server, this is configured on the product option selected when the license was created or purchased.) As the application developer, you are free to assign and program your own set of actions for any given Trigger Code Number. So for example, you could program your application to activate a non-expiring (or perpetual) license for your application when it receives a trigger code number of 1. At the same time, your application could also be programmed to activate a time-limited (or a "lease" or "periodic") license for some arbitrary number of days when it receives a trigger code number of 10.
User Code 1
Also known as the "session code" to former Protection PLUS 4 SDK users, this value is a randomized value that makes activation codes unique to each activation attempt.  Its purpose is to prevent end-users from using an activation code more than once, which is very important when an activation code does something such as incrementing the number of network seats allowed. When users contact your company to activate, they will be required to provide this value.
User Code 2
Also known as the "Computer ID" to former Protection PLUS 4 SDK users, this value is generated from device-specific information. Its purpose is to make each activation code unique to the PC for which it was issued, and prevent users from activating "Computer B" with an activation code generated for "Computer A". When a users contact your company to activate, they will be required to provide this value.
Activation Code 1
When a user requests activation, this value is generated by you or your company.  This value must always be provided to your end-users to complete an activation. Once your protected application has successfully validated Activation Code 1, it receives the Trigger Code Number, which allows your protected application to alter its license file as appropriate.
Activation Code 2
When a user requests activation, this value may (optionally) be generated by you or your company in order to send a secondary, numeric value to your application during activation. The decoded value sent to your application through Activation Code 2 may only be up to 14 bits in length (possible values range from 0 to 16383). For example, when issuing activations for a time-limited (or a "lease" or "periodic") license, this value can include the number of days which the protected application is allowed to run.

Generating Activation Codes

In most cases, SOLO Server is used to generate activations codes.  This involves creating a new license, and clicking the Manual Activation link at the top of the License Details page. From here, you can enter the user code values given to you by your end-user, and generate the activation codes. SOLO Server keeps a log of the activation history for all types of activations (online, manual, and trigger code activations), which affords you many benefits of Electronic License Management regarding activation and background checking. However, it is important to note that features such as license refreshing and deactivation may not be available when using trigger code activation alone. (Downloadable licenses are an exception to this limitation.)

Protection PLUS 5 SDK includes the License Manager application which can be used to generate activation codes for trigger code activation. In addition, if you already have a Protection PLUS 4 SDK license, you can continue to use LFEdit for this purpose.