Individual methods are only decrypted when needed during runtime, with the encryption and processing of the methods contained in the secure environment of the CPSRT.
If the user has the required license, the methods are decrypted on the fly; in all other cases, an exception would be reported. It is good practice to keep the application’s core function unencrypted, so that it can respond to the license exception e.g. with a custom error message.
Encrypting the methods dynamically has only minimal impact on the application’s performance. In the rare case that this represents a critical issue, performance can be improved by excluding individual methods from encryption.
You have two options to engage with users who have only purchased licenses for selected functions: The application can either, as in the basic configuration, report an exception if a license is missing; alternatively, the API can be used to test whether a license is available for a given function (check_license) and hide that feature in the first place if this is not the case.
IP Protection Mode
The IP Protection mode was created with freeware and freemium models in mind, but also works perfectly in combination with licensing. By contrast to the basic configuration, the encryption is not bound to a CodeMeter license. The key needed for decryption is securely hidden in the application itself. The application can be run at any time.
For freemium models, this IP Protection mode can be combined with custom licensing: Parts of the application in question are encrypted in the IP Protection mode and are always available; other parts are bound to a license and can only be used by users who own the right license. The API can be used to check whether a feature is available or not (check_license).
The following operating systems are supported: Windows x86, Windows x86_64, Linux x86, Linux x86_64, macOS x86_64.
The following CodeMeter container types are supported: CmDongle with Universal Firm Code, CmActLicense with Universal Firm Code, CmCloudContainer.
A runtime environment based on Node API is required (e.g. node.js, Electron).
Interested in a personalized offer for our CodeMeter technology? Just answer a few questions and our team will get back to you with all the information you need.