To top
Products Products

CodeMeter Core API, an interface for all most common programming languages

Share:

L’API CodeMeter Core permet aux développeurs d’accéder aux fonctionnalités de CodeMeter directement depuis leur logiciel. Ces fonctionnalités portent généralement sur les trois scénarios suivants :

  • Utilisation et gestion des licences
  • Lecture et écriture des données
  • Utilisation des fonctions de chiffrement

Pour CodeMeter Runtime, l’API CodeMeter Core est disponible sous forme de bibliothèque dynamique, d’un assemblage .NET et d’une interface Java. Ces interfaces permettent à pratiquement tous les langages de programmation courants d’utiliser l’API CodeMeter Core, parmi lesquels C/C++, C#, C++/CLI, Delphi, Java, Fortran, Fortran, VB, VB.NET et Python.

L’API CodeMeter Core est également disponible sous forme de bibliothèque C statique CodeMeter SDK et pour CodeMeter Runtime et CodeMeter Embedded. Pour CodeMeter Embedded et CodeMeter µEmbedded, l’API CodeMeter Core est fournie dans le code source, relevant ici également du SDK. L’API CodeMeter Core a été éditée pour toutes les plates-formes qui prennent en charge CodeMeter, dont Windows, macOS, Linux, Android, VxWorks et QNX.

Comparison of CodeMeter variants

Function CodeMeter
µEmbedded
CodeMeter
Embedded
CodeMeter
Runtime
WebAdmin     Yes
CodeMeter Control Center     Yes
Library with API Yes Yes Yes
User Command Line Tools     Yes
Background Service / Daemon     Yes
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

Utilisation et gestion des licences

L’API CodeMeter Core permet aux développeurs de définir la manière dont les licences sont utilisées dans leur logiciel. Les licences peuvent être vérifiées au moment du lancement du logiciel, et des fonctionnalités individuelles peuvent alors être activées, désactivées ou masquées, en fonction de la licence disponible. Les développeurs peuvent également décider d’attribuer les licences dès le lancement ou lors de la première utilisation de la fonction correspondante. Ils peuvent également décider de retourner ou non les licences après la fermeture du logiciel ou à la fin de la fonction correspondante. CodeMeter vérifie automatiquement la validité de la licence. Les licences expirées ou les licences correspondant à d’autres versions de logiciel sont automatiquement rejetées. Si plusieurs licences valides sont disponibles, CodeMeter choisit automatiquement l’option la mieux adaptée.

Une fois qu’une licence est retournée, CodeMeter reçoit une notification indiquant que la licence sera à nouveau disponible pour d’autres applications, ce qui est important notamment en cas d’utilisation de licences en réseau flottant (utilisation simultanée). Si une application plante ou ferme avant l’exécution du retour de licence, CodeMeter gère et retourne automatiquement les licences orphelines ainsi générées.

Pour une meilleure sécurité, l’API CodeMeter Core permet le chiffrement des données à l’aide d’une clé stockée dans la licence. Les données ne peuvent alors pas être déchiffrées ni utilisées en l’absence de la licence correspondante.

En plus de permettre aux applications d’utiliser efficacement les licences, CodeMeter donne également la possibilité aux développeurs de gérer les licences et de créer leurs propres gestionnaires de licences. Ils peuvent alors accéder aux licences expirées ou invalides, les lire ou en dresser la liste. Les licences peuvent être activées ou désactivées en ligne ou hors ligne à l’aide de CodeMeter License Central. Les utilisateurs peuvent également tout simplement emprunter et retourner les licences, en fonction de leurs besoins.

Lecture et écriture des données

CodeMeter permet de stocker les données dans une licence et de les rendre disponibles pour les utiliser dans une application. Les développeurs de logiciels peuvent écrire ces données dans la licence pendant sa création originale. Selon le champ de données sélectionné, l’accès aux données est libre pendant l’exécution, ou limité par une opération de chiffrement spécifique (agissant comme un mot de passe). Les développeurs décident également d’écraser ou non les données pendant l’exécution, ce qui est alors restreint à une séquence de programmation spécifique (agissant comme un autre mot de passe), et par conséquent uniquement possible pour l’application logicielle correspondante.

Avec CmSticks doté d’une mémoire flash, l’API CodeMeter Core peut lire et écrire les données dans une partition cachée spécifique de la mémoire flash (disque sécurisé). Contrairement aux données contenues dans une licence, qui vont de quelques octets à quelques kilooctets, ceci permet de stocker plusieurs gigaoctets de données. Cette option est utilisée tout particulièrement pour le stockage sécurisé des fichiers journaux.

Comparison of CodeMeter variants

Function CodeMeter
µEmbedded
CodeMeter
Embedded
CodeMeter
Runtime
WebAdmin     Yes
CodeMeter Control Center     Yes
Library with API Yes Yes Yes
User Command Line Tools     Yes
Background Service / Daemon     Yes
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

Utilisation des fonctions de chiffrement

CodeMeter permet de stocker en toute sécurité les opérations de chiffrement dans une licence, et comprend des clés privées pour la communication OPC UA chiffrée. En règle générale, ces clés ne peuvent pas être lues, mais sont disponibles pour l’API CodeMeter Core. Les clés peuvent être créées directement dans un CmDongle pour garantir qu’elles ne quittent jamais le CmDongle sécurisé.

Les fonctionnalités suivantes sont disponibles via l’API CodeMeter Core :

  • Calculer les valeurs de hachage (SHA 256)
  • Chiffrer et déchiffrer symétriquement les données (AES 128, AES 256)
  • Chiffrer et déchiffrer de manière asymétrique les données (ECIES 224, RSA 1024, RSA 2048, RSA 4096)
  • Signer les données (ECDSA 224, RSA 1024, RSA 2048, RSA 4096)
  • Calculer la clé publique pour une clé privée stockée (ECDSA 224, ECIES 224)

Les fonctionnalités peuvent être utilisées pour un large éventail d’applications :

  • Les paramètres et les données chiffrés peuvent être stockés dans le logiciel pour une meilleure protection.
  • Les données, créées avec l’application protégée, peuvent être chiffrées pour restreindre l’accès aux utilisateurs autorisés possédant une licence valide.
  • Les données et les fichiers journaux peuvent être signés pour prouver leur authenticité et leur intégrité.
  • Les clés peuvent être utilisées pour initier la communication chiffrée.