CodeMeter Embedded is a static library that provides the licensing and cryptographic capabilities of CodeMeter via a dedicated API for embedded operating systems like Linux Embedded, VxWorks, QNX, and Android. CodeMeter Embedded comes with a subset of the CodeMeter Runtime API that includes the core functionalities for licensing and protection. These cover the functions for accessing licenses, retrieving license options, creating license requests, importing license update, and performing symmetric and asymmetric cryptographic operations.
The modular nature of CodeMeter Embedded includes:
- CodeMeter Embedded Core API: A subset of CodeMeter Core API of CodeMeter Runtime that provides the core functionalities for licensing and protection purposes.
- CodeMeter Embedded Core: The core features of CodeMeter Embedded include:
- License Cache: Stores information about available licenses in memory for faster access to the licenses. No cryptographic keys or encrypted data (including hidden data) are cached.
- Multi-Application Access: Enables simultaneous access by several applications to a single CodeMeter Container.
- CmDongle: Allows the use of CmDongles for secure key and license storage purposes. All communication with CmDongles is encrypted.
- HID: Communication with CmSticks and CmASICs via a Human Interface Device driver on the USB stack. This requires an HID driver on the operating system in question.
- File I/O: Communication with CmSticks and CmCards by reading/writing a file in the CmDongle file system. This requires read/write capabilities (non-cached) on the operating system.
- SPI: Communication with CmASICs via a low-level interface for inter-chip communication. This requires an operating system with SPI driver.
- CmActLicense: Allows the use of a CmActLicense in combination with a set of specific properties of the embedded device (fingerprint). A specific adapter can be used to implement both the creation of the fingerprint and the storing of license files. The license files are protected by signatures and encryption. The following implementations of the CmActAdapter are available for reference:
- TPM: Reference implementation for the use of TPM chips to create the fingerprint
- Host ID: Adapter for a custom implementation for creating fingerprints
- CmLAN: Allows the use of a license server on a network. The server is part of CodeMeter Runtime, and all communication with the license server is encrypted.
- Runtime Bridge: Allows the simultaneous use of CodeMeter Runtime and CodeMeter Embedded on PCs. CodeMeter Embedded recognizes any active CodeMeter Runtime and uses it for encrypted communication with connected CmContainers.