Integratie¶
Dit hoofdstuk beschrijft hoe je NetHSM in applicaties kunt integreren en hoe je die integratie kunt testen. Als je op zoek bent naar software die al goed integreert met NetHSM, dan is hier een lijst met compatibele software.
REST-API¶
De primaire interface van NetHSM is een moderne REST-API die de beste prestaties en functionaliteit garandeert. De API-specificatie is beschikbaar in OpenAPI formaat, en kan worden geïnspecteerd en getest in de 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.
Ontwikkeling en Testen¶
Demo-instantie¶
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.
Containerafbeelding¶
NetHSM container images zijn beschikbaar voor testen en productie.
Integratie in aangepaste toepassing¶
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.
De lijst van alle beschikbare talen kan als volgt worden opgevraagd.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
De NetHSM-client kan als volgt voor uw programmeertaal worden gegenereerd.
$ 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
De gegenereerde client code, in dit voorbeeld JavaScript, wordt aangemaakt in de ./out/ directory. Deze map bevat ook de nodige documentatie over het gebruik ervan.
Belangrijk
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".
Opdrachtregelinterface¶
Gebruikers kunnen een NetHSM beheren en gebruiken met een speciale commandoregelinterface (CLI). Nitrokey biedt nitropy, die wordt gedistribueerd in de Python gebaseerde pynitrokey. Met nethsm bestaat er een alternatieve applicatie van derden, die is ontwikkeld in het Rust crate nethsm-cli.