Интеграция¶
Тази глава описва как да интегрирате NetHSM в приложенията и как да тествате тази интеграция. Ако търсите софтуер, който вече се интегрира добре с NetHSM, тук е списък със съвместим софтуер.
REST-API¶
Основният интерфейс на NetHSM е модерен REST-API, който гарантира най-добра производителност и функционалност. Спецификацията на API е налична във формат OpenAPI, и може да бъде разгледана и тествана в браузъра 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.
Разработване и тестване¶
Демонстрационен пример¶
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.
Изображение на контейнер¶
NetHSM контейнерни образи са налични за тестване и производство.
Интеграция към потребителско приложение¶
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.
Списъкът с всички налични езици може да бъде изтеглен по следния начин.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
Клиентът на NetHSM може да бъде генериран за вашия език за програмиране по следния начин.
$ 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
Генерираният клиентски код, в този пример JavaScript, ще бъде създаден в директорията ./out/. Тази папка съдържа и необходимата документация как да я използвате.
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".
Интерфейс на командния ред¶
Потребителите могат да администрират и използват NetHSM, като използват специален интерфейс за команден ред (CLI). Nitrokey предлага nitropy, който се разпространява в базирания на Python pynitrokey. При nethsm съществува алтернативно приложение от трета страна, което е разработено в Rust crate nethsm-cli.