Form_Load for desktop apps), when the user enters or changes a license key, and periodically if your licensing model requires it.
Already have the SDK installed? Jump to the activation example.
Getting started
Add client SDK/library
- C#/VB.NET
- Python
- Java
- Node Js
- Go
- C++
Install Nuget package
In Visual Studio package managerAdd namespace
Add key verification script
FAQ
Should I Use Activate or GetKey?
Should I Use Activate or GetKey?
Sign=true; SDK behavior varies, so follow the relevant SDK’s signing flow. GetKey can successfully return a blocked license. Check its Block field instead of treating retrieval success as authorization. An access token can have both permissions; see Access tokens and RSA public key.Does a Successful API Response Mean the License Is Valid?
Does a Successful API Response Mean the License Is Valid?
How Do I Verify a License Once per Day?
How Do I Verify a License Once per Day?
Troubleshooting
General
Result is null
Result is null
RSAPubKeyauthProductId
licenseKey is missing. Check the credential guide and the SDK’s error details. A null result alone does not identify the cause and must not automatically enable offline fallback.Block yourself..NET specific (C#/VB.NET)
Helpers.GetMachineCode issues (in Windows environments)
'System.MethodAccessException' when calling Helpers.GetMachineCode
Helpers.GetMachineCode issues (in Windows environments)
'System.MethodAccessException' when calling Helpers.GetMachineCode
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform. To fix this, we have added a boolean flag in Helpers class. Before calling Helpers.GetMachineCode or Helpers.IsOnRightMachine, please set Helpers.WindowsOnly=True.The namespace is missing
The namespace is missing

License verification is successful but signature verification fails
License verification is successful but signature verification fails
Issue with activation even if api.cryptolens.io is accessible in the browser
Issue with activation even if api.cryptolens.io is accessible in the browser
app.cryptolens.io and api.cryptolens.io in Microsoft Edge but unable to activate the application, the issue could be both that they are using a proxy, connect to Active directory or that their IT department has blocked TLS of certain versions.To fix these issues, we recommend to:- Update to the latest version of the SDK.
- If you run a version of .NET Framework prior to .NET Framework 4.7, we recommend to manually specify which TLS should be used. Before any call to the API (for instance, Key.Activate performs an API call), we recommend to add the following line:
Issues with Newtonsoft.Json on .NET 4.8
Issues with Newtonsoft.Json on .NET 4.8
Python
The expiration date cannot be converted to a datetime object. Please try setting the period to a lower value
The expiration date cannot be converted to a datetime object. Please try setting the period to a lower value
Issues with CA/SSL verification
Could not contact the server. Error message: <urlopen error [SSL: CERTIFICATE_VERIFY _FAILED] certificate verify failed: unable to get local issuer certificate (ssl.c:1125)>
Issues with CA/SSL verification
Could not contact the server. Error message: <urlopen error [SSL: CERTIFICATE_VERIFY _FAILED] certificate verify failed: unable to get local issuer certificate (ssl.c:1125)>
certifi package to be installed.Running a script in the Python environmentAn alternative is to run script in their environment that should fix the issue. You can read more about it in this thread: #65SummaryThe key takeaway is that it is better to address the issue with missing CA on the user side, since this issue will typically be user-specific. If that is not possible, you can use the code above to manually set the path to CA files. Although we have mentioned turning off SSL verification temporarily, it should not be used in production. Key.activate takes care of signature verification internally, but some other methods do not.Proxy
Proxy
Turning off SSL (for troubleshooting only)
Turning off SSL (for troubleshooting only)
C++
How errors are reported in the C++ library is described in theREADME.md file, which is also available here. If you are on a Unix based system, you can find a summary of all curl errors here.