Encrypting the License Codes
For enhanced security, you can add an additional layer of encryption while generating licenses.
Make sure that post-modification, your encrypted short-numeric licenses consist of numbers only. Else, the license generation will fail.
Executables to Rebuild
>In the case of standalone licensing (application linked to the standalone library or the integrated library), the client application needs to be rebuild.
>In the case of network licensing, the License Manager executable needs to be rebuild.
>The command-line license code generator (lscgen)
>The command-line license code decoder (lsdecode)
>For Windows, a plug-in for wlscgen.exe (wlscgen.dll)
Description
Provides the vendor-specified an extra layer of encryption and decryption for the license codes.
Encryption Function Prototype
int VLSencryptLicense
(
char *decrypted_mesg,
char *encrypted_mesg,
int size
);
Returns
>Returns 0 (zero) on success.
>Returns non-zero on failure.
Parameter |
Description |
decrypted_mesg |
An IN parameter. The original license code. |
encrypted_mesg |
An OUT parameter. The encrypted license code. |
size |
An IN parameter. The size of the decrypted_mesg buffer. |
Note that the encrypted licenses code must not contain following characters:
Character |
Hex Value |
Description |
\t |
0x09 |
The tab character |
\n |
0x0A |
The new-line character |
# |
0x23 |
The pound sign or number sign or hash mark |
( |
0x28 |
The opening round parentheses |
) |
0x29 |
The closing round parentheses |
, |
0x2C |
The comma mark |
- |
0x2D |
The hyphen or dash or minus sign |
Decryption Function Prototype
int VLSdecryptLicense
(
char *encrypted_mesg,
char *decrypted_mesg,
int size
);
Returns
>Returns 0 (zero) on success.
>Returns non-zero on failure.
Parameter |
Description |
encrypted_mesg |
An IN parameter. The encrypted license code. |
decrypted_mesg |
An OUT parameter. The original license code. |
size |
An IN parameter. The size of the encrypted_mesg buffer. |
Steps to Perform
1.Create the VLSencryptLicense function.
2.Create the VLSdecryptLicense function.
3.Update the ENCRYPT_LIC_OBJS variable in the custom32.mak file.
4.Update the DECRYPT_LIC_OBJS variable in the custom32.mak file.
5.Follow the build procedure specified in How to Use the custom32.mak File?.
Code Snippets
The VLSencryptLicense Function
int VLSencryptLicense
(
char *decrypted_mesg, /* IN */
char *encrypted_mesg, /* OUT */
int size /* IN */
)
{
if (decrypted_mesg == NULL)
{
return 1; /* non-zero to mark failure */
}
if (encrypted_mesg == NULL)
{
return 1; /* non-zero to mark failure */
}
if (size == 0)
{
return 1; /* non-zero to mark failure */
}
/* TODO: add the encryption code here */
return 0; /*
successful encryption */
}
The VLSdecryptLicense Function
int VLSdecryptLicense
(
char *encrypted_mesg, /* IN */
char *decrypted_mesg, /* OUT */
int size /* IN */
)
{
if (encrypted_mesg == NULL)
{
return 1; /* non-zero to mark failure */
}
if (decrypted_mesg == NULL)
{
return 1; /* non-zero to mark failure */
}
if (size == 0)
{
return 1; /* non-zero to mark failure */
/* TODO: add the decryption code here */
return 0; /* successful decryption */
}
}