To top
Products Products

CodeMeter Embedded


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.

Possible use cases include direct access to CodeMeter functionality from an application of yours, from AxEngine, or from ExEngine (both modules of CodeMeter Protection Suite).

CodeMeter Embedded supports the following types of CodeMeter containers: CmDongles and CmActLicenses.

The Components of CodeMeter Embedded

The modular nature of CodeMeter Embedded can be illustrated as follows:

The Modules in Detail

  • 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.
Function CodeMeter
CmDongles   Yes Yes
CmActLicenses Yes Yes Yes
CmCloudLicenses     Yes
LAN Client    Yes Yes
LAN Server     Yes
Trial Licenses,
Subscription-based Licenses
   Yes Yes
Pay-Per-Use Licenses    Yes Yes
Feature-based Licenses Yes Yes Yes
Version-based Licenses Yes Yes Yes
License Transfer Master     Yes
License Transfer Endpoint Yes Yes Yes
File-based License Update Yes Yes Yes
Terminal Server Detection     Yes
Remote Desktop Detection     Yes
Secure Key Storage Yes Yes Yes

Platforms and Operating Systems

Depending on the target platform, the library will range in size from 400 KB to 600 KB. For additional platforms like RTOS systems or special applications, CodeMeter Embedded can be provided in source code.

CodeMeter Embedded is available for the following platforms:

Name Operating System Architecture
CodeMeter Embedded SDK Linux ARM Linux, Kernel  ≥ 2.4.10 with glibc ≥ 2.4 ARMv6, ARMv7, and ARMv8
CodeMeter Embedded SDK Linux x86 Linux, Kernel  ≥ 2.4.10 with glibc ≥ 2.4 x86 and x86-64
CodeMeter Embedded SDK QNX ARM QNX 6.5 ARMv7
CodeMeter Embedded SDK QNX x86 QNX 6.5 x86
CodeMeter Embedded SDK VxWorks ARM VxWorks 6.9, 7.0 ARMv7
CodeMeter Embedded SDK VxWorks PowerPC VxWorks 6.9, 7.0 PowerPC
CodeMeter Embedded SDK VxWorks x86 VxWorks 6.9, 7.0 x86 and x86-64
CodeMeter Embedded SDK Windows x86 Windows ≥ 7 x86 and x86-64
CodeMeter Embedded SDK Android ARM Android Version ≥ 5.0 ARMv7