Intégration¶
Ce chapitre décrit comment intégrer NetHSM dans des applications et comment tester cette intégration. Si vous cherchez un logiciel qui s’intègre déjà bien avec NetHSM, voici une liste de logiciels compatibles : .
REST-API¶
L’interface principale de NetHSM est une API REST moderne qui garantit les meilleures performances et fonctionnalités. La spécification de l’API est disponible au format OpenAPI, et peut être inspectée et testée dans le navigateur API.
PKCS#11¶
The NetHSM supports the PKCS#11 standard. The required driver is available from the repository. The repository contains the source code and libraries, for different operating systems. The PKCS#11 guide describes the usage in detail.
Développement et essais¶
Instance de démonstration¶
A public NetHSM demo instance is available at nethsmdemo.nitrokey.com.
It will be reset every eight hours (CET 6:00, 14:00, 22:00). User admin, password adminadmin, unlock password unlockunlock.
Image du conteneur¶
Les images du conteneur NetHSM ` <container/index.html>` __ sont disponibles pour les tests et la production.
Intégration dans une application personnalisée¶
To integrate the NetHSM into own custom applications, client libraries are available for almost all programming languages. Here are our libraries for Python and Rust as well as 3rd party Rust crate and Go library. For all other programming languages we recommend using OpenAPI Generator.
La liste de toutes les langues disponibles peut être récupérée comme suit.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
Le client NetHSM peut être généré pour votre langage de programmation comme suit.
$ docker run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript
$ podman run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript
Le code client généré, dans cet exemple JavaScript, sera créé dans le répertoire ./out/`. Ce dossier contient également la documentation nécessaire à son utilisation.
Important
If Podman is used with enforcing SELinux, a labeling to the volume mount might be required.
The mode of SELinux can be requested with sestatus |grep "Current mode".
If the mode is set to enforcing, a change to the context is required.
In this case the volume mount must be suffixed with :z, resulting in -v "${PWD}/out:/out:z".
Interface de ligne de commande¶
Les utilisateurs peuvent administrer et utiliser un NetHSM à l’aide d’une interface de ligne de commande (CLI) dédiée. Nitrokey propose nitropy, qui est distribué dans la base Python pynitrokey. Avec nethsm, il existe une autre application tierce, développée dans le crate Rust nethsm-cli.