- Support for Windows ARM64 builds.
- System-wide activations are now supported on macOS as well.
GetActivationCreationDate()
function returns the activation creation date timestamp for the current activation.
- Bug fix.
- Bug fix.
- Bug fix.
- The
User-Locked
property is now ignored for system-wide activations.
- Signed builds for macOS.
- Resolved an issue with
LA_E_TIME
to allow license deactivation.
GetUserLicenses()
function returns the license metadata as well.
- Updated buffer sizes for various parameters of the Release struct in
LexTypes.h
- The minimum supported macOS version has been updated to 10.13.
- Updated the data type of
allowedUses
toint64_t
,totalUses
touint64_t
andgrossUses
touint64_t
ofGetLicenseMeterAttribute()
function. - Updated the data type of argument from
uint32_t
toint64_t
ofSetActivationLeaseDuration()
function. - Updated the argument type from
uint32_t
toint64_t
ofGetLicenseAllowedActivations()
function . - Updated the argument type from
uint32_t
toint64_t
ofGetLicenseAllowedDeactivations()
function. - Updated the data types of
allowedActivations
andallowedDeactivations
fromint
toint64_t
ofUserLicense
struct.
SetCacheMode()
function to disable or enable in-memory caching.
- Minor bug fix.
LA_ALL_USERS
permission flag to enable system-wide activation on Windows.
- Minor bug fix.
- Minor bug fix.
GetLicenseAllowedDeactivations()
function to get the allowed deactivations of the license.GetLicenseTotalDeactivations()
function to get the total deactivations of the license.
- Minor bug fix.
- Minor bug fix.
- Minor bug fix.
GetActivationId()
function to get the activation ID.- Added support for EU data center.
- Minor bug fix.
AuthenticateUserWithIdToken()
function to authenticate the user via the OIDC ID token.
- Minor bug fix.
- Minor bug fix.
- Added missing check for the existence of meter attribute before incrementing, decrementing and resetting the count.
- Added missing server sync in the case when
IsLicenseGenuine()
function returnsLA_E_RELEASE_VERSION_NOT_ALLOWED
error code.
SetTwoFactorAuthenticationCode()
function to authenticate the users with 2FA enabled.
- Fingerprint-related issues in Android devices.
AuthenticateUser()
function to authenticate the user.GetUserLicenses()
function to get the licenses linked with the user.GetLicenseCreationDate()
function to get the creation date timestamp of the license.GetLicenseActivationDate()
function to get the activation date timestamp of the license.
- Minor bug fix.
- Activation validation issue due to a very large number of metadata fields.
- Crash in some OEM Android devices due to GSF ID.
- Fingerprint-related issue in Android devices of the same make.
- Minor bug fixes.
- Minor bug fixes.
GetLicenseOrganizationName()
function to get the license organization name.GetLicenseOrganizationAddress()
function to get the license organization address.CheckReleaseUpdate()
function to check whether a new release is available for the product. It also determines if the update is allowed or not and provides the release object if a new release is available.
CheckForReleaseUpdate()
function has been deprecated in favour ofCheckReleaseUpdate()
function.
- False positive container detection on some Linux distributions.
- Container detection issue on recent Linux distributions.
- Encoding issue in
GetProductVersionName()
function.
- Issue preventing detection of Windows Server 2022.
- NTLM proxy authentication issue.
- Fingerprint issue in Android trial activations.
- Missing OS version in the case of some Windows server machines.
- Minor bug fixes.
- Minor bug fixes.
GetLicenseMaxAllowedReleaseVersion()
function to get the maximum allowed release version of the license.SetReleaseChannel()
function to set the release channel e.g. stable, beta etc. of the application.SetReleasePlatform()
function to set the release platform e.g. windows, macos, linux etc. of the application.SetReleasePublishedDate()
function to set the release published date of your application.
- Removed external
libcurl
dependency in Linuxmusl
build
- Minor bug fixes.
GetActivationMode()
function to get the mode of activation (online or offline).GetLicenseMaintenanceExpiryDate()
function to get the expiry date of maintenance.SetReleaseVersion()
function to set the release version.
- Issues related to device fingerprinting on Android.
- Dropped dependency on system
libcurl
in the case of Alpine Linux (musl).
- Support for
disableClockValidation
license property.
- PAC file related issue on Windows.
- False positives in VM detection for macOS.
- Issue causing crash when PAC file is used for proxy settings on Windows.
SetActivationLeaseDuration()
function to allow setting lease duration from the client.
GetProductVersionName()
function to get the product version name.GetProductVersionDisplayName()
function to get the product version display name.GetProductVersionFeatureFlag()
function to get the product version feature flag.
- Issue related to incorrect system encodings.
- Issue causing failure in the detection of AWS EC2 VMs.
- Issue causing
IsLicenseGenuine()
function to return incorrect status code in case of multi-product usage.
- Issue causing crash on iOS in case of static linking.
- Issue causing crash on 32-bit Windows in case of Java.
- Support for Android and iOS.
- Support for auto-proxy detection from PAC file on Windows.
SetDataDirectory()
function to allow changing the default directory used by LexActivator to store the activation data.
- Issue causing
GetActivationMeterAttributeUses()
function to return incorrect value in caseLA_IN_MEMORY
flag is used.
- Issue causing networking errors on Windows.
- Issue causing license callback to get invoked even after the license was deactivated.
- Dropped dependency on
libnss3
for Linux.
- Issue in offline activation when offline response file of some other machine is used for activation.
- Issue causing license callback of deactivated activation to trigger in the case when license deactivation fails.
- Intermittent crashes in multi-threaded usage.
- Improved performance of incrementing meter attributes in
LA_IN_MEMORY
mode.
- Intermittent crashes in multi-threaded usage.
- Buffer overflow issues causing activation verification to fail.
- Support for preventing activation of license inside the container.
- Intermittent crashes on high concurrent usage.
- Internal implementation of incrementing meter attributes resulting in increased performance and better concurrency support.
- Caching issue causing IsLicenseGenuine() function to return LA_FAIL when multiple instances of the app are run on the same machine.
- Issue causing LexActivator to be flagged as a malicious file by anti-viruses on Windows.
- Support for bypassing system proxy settings. Just add
api.cryptlex.com
to the bypass proxy hosts list in the system proxy settings.
DeactivateLicense()
function doesn't reset the license key in case ofhosted-floating
license type.
- Bug causing the cache to return incorrect status code.
SetCustomDeviceFingerprint()
function to allow setting a custom device fingerprint.GetLicenseAllowedActivations()
function to get the allowed activations of the license.GetLicenseTotalActivations()
function to get the total activations of the license.GetLibraryVersion()
function to get the library version.
GetLicenseMeterAttribute()
function to return gross uses of the meter attribute.
- Bug causing fingerprint mismatch error in Dockers
- Improved device fingerprinting of devices running Linux.
- Improved device fingerprinting of devices running Linux.
- Bug preventing auto-detection of system proxy.
- Bug causing crash in multi-threaded use.
- Minor bug fixes.
- Bug preventing the detection of Hyper-V on some Windows 10 machines.
- LexActivator functions are now thread-safe.
- Minor bug fixes
SetOfflineActivationRequestMeterAttributeUses()
function to support meter attributes for offline activations.
- Minor bug fixes.
- Minor bug fixes.
- Minor bug fixes.
GetActivationMeterAttributeUses()
,IncrementActivationMeterAttributeUses()
,DecrementActivationMeterAttributeUses()
,ResetActivationMeterAttributeUses()
andGetLicenseMeterAttribute()
functions to add support for meter attributes.
- LexActivator wrappers for all the languages have been updated with above mentioned API function. Please update your wrappers using the latest code on Github.
SetLicenseUserCredential()
function for user authentication. IfrequireAuthentication
property of license is set totrue
then this function must be called before invokingActivateLicense()
orIsLicenseGenuine()
function.
GetLicenseUserCompany()
andGetLicenseUserMetadata()
functions to fetch user company and user metadata.GetServerSyncGracePeriodExpiryDate()
function to get the grace period expiry date for server sync.CheckForReleaseUpdate()
function to easily detect the software updates in your app.
LA_IN_MEMORY
flag to add support for in-memory license activations, which stores license activation data in memory only instead of disk.
- A bug preventing changing of permission flag from
LA_SYSTEM
toLA_USER
when former is set first.
GenerateOfflineTrialActivationRequest()
andActivateTrialOffline()
functions to allow for offline trial activations.
- Wrappers for languages have been updated with
GenerateOfflineTrialActivationRequest()
andActivateTrialOffline()
API functions. Please update your wrappers using the latest code on Github.
GetLicenseType()
function to get the license type (node-locked or hosted-floating).
- Wrappers for languages have been updated with
GetLicenseType()
API function. Please update your wrappers using the latest code on Github.
- Support for clock offset property set for the licenses in the dashboard, which can be used to allow license and trial activations on machines where system clocks run behind the network time.
-
Time tampering detection threshold has been increased to around one hour to allow for daylight savings and minor changes in the system time.
-
On time tampering detection instead of returning
LA_E_TIME
it now returnsLA_E_TIME_MODIFIED
.Now
LA_E_TIME
is returned only when the system time is behind the network time by more than the allowed clock offset.
- Wrappers for languages have been updated with
LA_E_TIME_MODIFIED
status code. Please update your wrappers using the latest code on Github.
- A bug causing causing crash on few Windows machines, with WMIC service not running.
- A bug causing causing crash on Linux, if license is deleted server side.
- A bug causing insufficient system permissions error on first run on Linux.
- A network SSL issue causing activations to fail for few proxies.
- A network issue causing activations to fail.
SetProductData()
functionSetLicenseCallback()
functionSetTrialActivationMetadata()
functionSetAppVersion()
functionGetProductMetadata()
functionGetLicenseUserEmail()
functionGetLicenseUserName()
functionGetTrialActivationMetadata()
functionGetTrialExpiryDate()
functionGetTrialId()
functionGetLocalTrialExpiryDate()
functionIsLocalTrialGenuine()
functionExtendLocalTrial()
functionReset()
function
- All status codes have been updated
- Renamed
SetVersionGUID()
function toSetProductId()
- Renamed
SetProductKey()
function toSetLicenseKey()
- Renamed
SetExtraActivationData()
function toSetActivationMetadata()
- Renamed
ActivateProduct()
function toActivateLicense()
- Renamed
DeactivateProduct()
function toDeactivateLicense()
- Renamed
ActivateProductOffline()
function toActivateLicenseOffline()
- Renamed
IsProductGenuine()
function toIsLicenseGenuine()
- Renamed
IsProductActivated()
function toIsLicenseValid()
- Renamed
GetExtraActivationData()
function toGetActivationMetadata()
- Renamed
GetCustomLicenseField()
function toGetLicenseMetadata()
- Renamed
GetProductKeyExpiryDate()
function toGetLicenseExpiryDate()
- Renamed
InitializeTrial()
function toActivateLocalTrial()
GetDaysLeftToExpiration()
functionSetTrialKey()
functionExtendTrial()
functionGetTrialDaysLeft()
functionSetDayIntervalForServerCheck()
functionSetGracePeriodForNetworkError()
functionSetUserLock()
function
GetProductKeyExpiryDate()
function to get the product key expiry timestamp.- Support for Linux ARMv8 64 bit architecture
- Bug preventing grace period not to expire on no server sync
- Bug causing incorrect detection of Hyper-V
- Bug causing grace period not to expire
- Regression causing LA_EXPIRED to return for deactivated licenses
- A major bug causing LA_FAIL status to be returned for activated products
- clang build for macOS
ActivateProduct()
function now returns (throws) LA_E_ACT_LIMIT error (exception) if activation limit is reachedIsProductGenuine()
function won't reactivate the product key, if deactivated server side
- Embedded version
- Support for changing product version without restart
- Minor bug fixes
- GCE VM detection bug
- Support for Linux ARMv5 and ARMv7 architectures
- Server sync for revoked licenses
- Minor bug fixes
- A memory leak in
IsProductGenuine()
function if being invoked periodically
DeactivateProduct()
now returns LA_E_DEACT_LIMIT instead of LA_FAIL if deactivation limit is reached for the key
- Minor bug fixes
- All setter functions other than
SetVersionGUID()
are now only needed at the time of activation DeactivateProduct()
now deactivates the product even if product key is expired
- AWS VM detection bug
SetUserLock()
function to support user locked licenses.
DeactivateProduct()
function now deactivates the product locally even if product key is already deactivated server side, and LA_FAIL is returned.
- A minor bug in offline activation.
- A minor bug in VM activation.
GetExtraActivationData()
function to get the value of the extra activation data.GetDaysLeftToExpiration()
function to get the number of remaining days after which the license expires.