To top
Products Products

CodeMeter Core API

Share:

CodeMeter Core API bietet Ihnen als Softwarehersteller die Möglichkeit, CodeMeter-Funktionen direkt aus Ihrer Software aufzurufen. Diese Funktionen umfassen im Wesentlichen die folgenden drei Anwendungsfälle:

  • Lizenzen verwenden und verwalten
  • Daten lesen und schreiben
  • Kryptographische Funktionen verwenden

Für CodeMeter Runtime ist CodeMeter Core API als dynamische Bibliothek, als .NET Assembly und als Java Interface verfügbar. Mit diesen Interfaces können Sie neben C/C++ nahezu alle gängigen Programmiersprachen für CodeMeter Core API verwenden, zum Beispiel: C/C++, C#, C++/CLI, Delphi, Java, Fortran, Fortran, VB, VB.NET und Python.

CodeMeter Core API ist zusätzlich als statische C-Bibliothek Bestandteil des CodeMeter SDK und für CodeMeter Runtime und CodeMeter Embedded verfügbar. Für CodeMeter Embedded und CodeMeter µEmbedded ist CodeMeter Core API als Source Code verfügbar und ebenfalls Bestandteil des SDKs. CodeMeter Core API ist auf allen Plattformen verfügbar, die CodeMeter unterstützt, zum Beispiel: Windows, macOS, Linux, Android, VxWorks und QNX.

CodeMeter Core API CodeMeter Variante Bestandteil von Betriebssysteme / Umgebungene Programmier-sprachen
Statische Bibliothek CodeMeter Runtime CodeMeter SDK Windows (x86, x86-64),
macOS (x86-64),
Linux (x86, x86-64, ARM)
C/C++
Statische Bibliothek CodeMeter Embedded CodeMeter Embedded SDK WWindows (x86, x86-64),
macOS (x86-64),
Linux (x86, x86-64, ARM),
QNX (x86, ARM),
VxWorks (x86, x86-64, ARM, PowerPC),
Android (ARM)
C/C++
Dynamische Bibliothek CodeMeter Runtime CodeMeter Runtime Windows (x86, x86-64),
macOS (x86-64),
Linux (x86, x86-64, ARM)
C/C++, Delphi, VB, Fortran, Python, …
.NET Assembly CodeMeter Runtime CodeMeter Runtime Windows (x86, x86-64) C#, C++/CLI, VB.NET
.NET Standard Assembly CodeMeter Runtime CodeMeter Runtime Windows (x86, x86-64),
macOS (x86-64),
Linux (x86, x86-64, ARM)
C#, VB.NET
Java Interface CodeMeter Runtime CodeMeter Runtime Windows (x86, x86-64),
macOS (x86-64),
Linux (x86, x86-64, ARM)
Java
Source Code CodeMeter Embedded CodeMeter Embedded SDK Beliebiges Betriebssystem C/C++
Source Code CodeMeter µEmbedded CodeMeter µEmbedded SDK Beliebiges Betriebssystem C/C++

Lizenzen verwenden und verwalten

CodeMeter Core API bietet Ihnen als Softwarehersteller die Möglichkeit, die Verwendung von Lizenzen flexibel selbst in Ihrer Software zu definieren. So können Sie zum Beispiel beim Start Ihrer Software nach verfügbaren Lizenzen suchen und abhängig vom Ergebnis einzelne Funktionen in Ihrer Software aktivieren, deaktivieren oder verstecken. Sie können auch festlegen, ob die Software eine Lizenz bereits beim Start belegt oder mit der ersten Benutzung der zugeordneten Funktion. Ebenso können Sie implementieren, ob die Lizenz beim Beenden der Funktion oder beim Beenden der Anwendung wieder freigegeben wird. Die Prüfung, ob eine Lizenz gültig ist, übernimmt CodeMeter ganz automatisch für Sie. So werden abgelaufene Lizenzen oder Lizenzen für andere Versionen Ihrer Software automatisch abgewiesen. Falls mehrere gleiche Lizenzen vorhanden sind, wählt CodeMeter automatisch die beste für Sie aus.

Durch das Freigeben einer Lizenz teilen Sie CodeMeter mit, dass diese jetzt wieder für andere Anwendungen zur Verfügung steht. Dies ist zum Beispiel beim Einsatz als Floating Netzwerk Lizenz (Concurrent Use) wichtig. Sollte Ihre Software ungewöhnlich beendet werden und somit der Code der Freigabe nicht durchlaufen werden, dann kümmert sich CodeMeter automatisch um die dadurch entstandenen verwaisten Lizenzen und gibt diese frei.

Für hohe Sicherheit bietet Ihnen CodeMeter Core API die Möglichkeit, Daten mit einem Schlüssel zu verschlüsseln, der in der Lizenz gespeichert ist. Eine Entschlüsselung und Verwendung der Daten ist somit ohne passende Lizenz nicht möglich.

Neben der Verwendung von Lizenzen durch Ihre Anwendung bietet Ihnen CodeMeter die Möglichkeit, Lizenzen zu verwalten und einen eigenen Lizenzmanager zu erstellen. In diesem Fall können Sie auch auf abgelaufene und ungültige Lizenzen zugreifen und diese auslesen und auflisten. Sie können Lizenzen offline und online über CodeMeter License Central aktivieren und deaktivieren. Zusätzlich können Sie Ihren Anwendern die Möglichkeit bieten, Lizenzen einfach auszuleihen und zurückzugeben.

Daten lesen und schreiben

CodeMeter bietet die Möglichkeit, Daten in einer Lizenz zu speichern und diese Daten in der eigenen Anwendung selbst zu interpretieren. Diese Daten können bei der Erstellung der Lizenz von Ihnen als Softwarehersteller geschrieben werden. Abhängig vom gewählten Datenfeld ist der Zugriff zur Laufzeit frei oder über ein kryptographisches Verfahren (man kann sich dies als ein Passwort vorstellen) nur durch Software möglich. Zusätzlich legen Sie fest, ob diese Daten zur Laufzeit überschrieben werden können. Das Überschreiben ist in diesem Fall an eine Programmiersequenz gebunden (diese kann man sich als ein weiteres Passwort vorstellen) und somit ebenfalls nur durch Ihre Software möglich.

Zusätzlich zu den Daten in einer Lizenz bietet der CmStick mit Flash Memory auch die Möglichkeit, Daten per CodeMeter Core API in einen versteckten Bereich auf dem Flash Memory (Secure Disc) zu schreiben und zu lesen. Im Gegensatz zu den Daten in der Lizenz, die einige Byte bis Kilobyte umfassen, können hier mehrere Gigabyte geschrieben werden. Diese Möglichkeit wird vor allem für das geschützte Schreiben von Log-Dateien verwendet.

Datentyp Größe CmDongle mit Flash CmDongle ohne Flash / CmActLicense Lesen zur Laufzeit Schreiben zu Laufzeit Schlüsselquelle
User Data 256 Byte Ja Ja Ja Ja Nein
Protected Data 256 Byte Ja Ja Ja Konfigurierbar
(Passwort**, Nein)
Nein
Extended Protected Data 128 x 256 Byte Ja Ja Ja Konfigurierbar
(Passwort**, Nein)
Nein
Hidden Data 128 x 256 Byte Ja Ja Passwort* Konfigurierbar
(Passwort**, Nein)
AES 128,
ECC 224
Secret Data 128 x 256 Byte Ja Ja Nein Konfigurierbar
(Passwort**, Nein)
AES 128,
ECC 224,
RSA 1024,
RSA 2048
Universal Data Begrenzt durch die Größe des Smartcard Chips Ja Ja Nein Nein AES 256,
RSA 4096
Secure Disk Begrenzt durch die Größe des Flash Speichers Ja Nein Passwort Passwort** Nein

* Hidden Data Access Code
** Programmiersequenz

Kryptographische Funktionen verwenden

CodeMeter bietet die Möglichkeit, Schlüssel für kryptographische Operationen sicher in einer Lizenz speichern, zum Beispiel private Schlüssel für die verschlüsselte Kommunikation für OPC UA. Diese Schlüssel können in der Regel nicht ausgelesen werden, aber durch CodeMeter Core API verwendet werden. Es besteht die Möglichkeit, Schlüssel direkt in einem CmDongle zu erzeugen. Diese Schlüssel sind dann nie außerhalb des CmDongles verfügbar.

Folgende Funktionen sind per CodeMeter Core API verfügbar:

  • Berechnung von Hash-Werten (SHA 256)
  • Symmetrisches Ver- und Entschlüsseln von Daten (AES 128, AES 256)
  • Asymmetrisches Ver- und Entschlüsseln von Daten (ECIES 224, RSA 1024, RSA 2048, RSA 4096)
  • Signieren von Daten (ECDSA 224, RSA 1024, RSA 2048, RSA 4096)
  • Berechnung eines öffentlichen Schlüssels zu einem gespeicherten privaten Schlüssel (ECDSA 224, ECIES 224)

Diese Funktionen können für vielfältige Anwendungsfälle verwendet werden:

  • Verschlüsselte Parameter und Daten können in der Software hinterlegt werden, um die Sicherheit des Schutzes zu erhöhen.
  • Daten, die durch die geschützte Software erzeugt werden, können verschlüsselt werden, so dass nur berechtigte Personen oder Anwender mit einer gültigen Lizenz darauf zugreifen können.
  • Erzeugte Daten und Log-Dateien können signiert werden, so dass ihre Authentizität und Integrität geprüft werden kann.
  • Die Schlüssel können für das Aufsetzen einer verschlüsselten Kommunikation verwendet werden.