We are currently using LexActivator to perform offline node-locked license activations. We have integrated the LexActivator into our existing server and added the following two endpoints:
/license/generateOfflineActivationRequest/{licenseKey}
LexActivator.SetLicenseKey(licenseKey);
LexActivator.GenerateOfflineActivationRequest(path);
/license/uploadOfflineActivationResponse
LexActivator.ActivateLicenseOffline(offlineActivationResponse);
int licenseStatus = LexActivator.IsLicenseGenuine();
if (LA_OK) ....
What we have observed is that a user can activate Cryptlex using an offline activation reponse with a different finger print if LexActivator has a license key stored that is not the same license key used to generate the offline activation response.
For example, if the user follows the normal flow:
/license/generateOfflineActivationRequest/KEY_USED_TO_GENERATE_REQUEST
User takes an offline response from an offline request generated on another users computer
/license/uploadOfflineActivationResponse
Everything works as expected and we get the exception that the machine fingerprint has changed since activation. However, if the user performs the following flow:
/license/generateOfflineActivationRequest/ANY_STRING
User takes an offline response from an offline request generated on another users computer
/license/uploadOfflineActivationResponse
Then the LexActivator returns a status of LA_OK.
It seems that the LexActivator should throw some sort of exception when a user tries to upload an offline response generated using a different license key than the current LexActivator license key. Are we missing some sort of validation in either of our endpoints? I don’t see any way to get the license key from the activation response to do any sort of validation. Or is there something in the policy we should be setting? Or is this possibly just a bug due to being unable to validate license keys while performing offline activations?