Integration¶
I detta kapitel beskrivs hur NetHSM integreras i applikationer och hur integrationen testas. Om du söker efter programvara som redan är väl integrerad med NetHSM, finns här en lista på över kompatibel programvara.
REST-API¶
NetHSM:s primära gränssnitt är ett modernt REST-API som garanterar bästa prestanda och funktionalitet. API-specifikationen finns tillgänglig i OpenAPI-format och kan inspekteras och testas i API browser.
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.
Utveckling och testning¶
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.
Containerbild¶
NetHSM containeravbildningar är tillgängliga för testning och produktion.
Integration i anpassad 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.
Listan över alla tillgängliga språk kan hämtas på följande sätt.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
NetHSM-klienten kan genereras för ditt programmeringsspråk på följande sätt.
$ 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
Den genererade klientkoden, i det här exemplet JavaScript, skapas i katalogen ./out/. Denna mapp innehåller också den nödvändiga dokumentationen om hur den ska användas.
Viktigt
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".
Kommandoradsgränssnitt¶
Användare kan administrera och använda en NetHSM med hjälp av ett särskilt kommandoradsgränssnitt (CLI). Nitrokey erbjuder nitropy, som distribueras i den Python-baserade pynitrokey. Med nethsm finns en alternativ tredjepartsapplikation, som är utvecklad i Rust crate nethsm-cli.