Integration

Dette kapitel beskriver, hvordan man integrerer NetHSM i applikationer, og hvordan man tester denne integration. Hvis du søger efter software, som allerede integrerer godt med NetHSM, er her en liste over kompatibel software.

REST-API

NetHSM’s primære grænseflade er et moderne REST-API, der garanterer den bedste ydeevne og funktionalitet. API-specifikationen er tilgængelig i OpenAPI-format, og kan inspiceres og testes i API-browseren.

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.

Udvikling og afprøvning

Demo-instans

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.

Containerbillede

NetHSM containerbilleder er tilgængelige til test og produktion.

Integration til brugerdefineret applikation

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.

Listen over alle tilgængelige sprog kan hentes på følgende måde.

$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable

NetHSM-klienten kan genereres til dit programmeringssprog på følgende måde.

$ 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

Den genererede klientkode, i dette eksempel JavaScript, vil blive oprettet i mappen ./out/. Denne mappe indeholder også den nødvendige dokumentation for, hvordan den skal bruges.

Vigtigt

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".

Kommandolinje-grænseflade

Brugere kan administrere og bruge en NetHSM ved hjælp af en dedikeret kommandolinjegrænseflade (CLI). Nitrokey tilbyder nitropy, som er distribueret i den Python-baserede pynitrokey. Med nethsm findes der en alternativ tredjepartsapplikation, som er udviklet i Rust crate nethsm-cli.