Libyubihsm Reference
Libyubihsm is the C library used to communicate natively with a YubiHSM 2. It implements and exposes convenience functions for all the commands supported by the device. It also allows the sending of unformatted “raw” messages over an established session or in plain text.
The library is used by:
- yubihsm-shell, see YubiHSM Shell Reference
- PKCS#11 module, see PKCS#11 with YubiHSM 2 Reference
- KSP, see Key Storage Provider Reference
Documentation of the library API can be found as comments within the header file (yubihsm.h
) in the SDK, or as a pre-built Doxygen bundle.
Backends
Libyubihsm requires a Connector component to talk to a YubiHSM device. This component can be one of two different types.
HTTP Connector
This kind of Connector is a multiplexer daemon that speaks USB to a YubiHSM device and HTTP to the libyubihsm
. This is the component described as the yubihsm-connector, see Connector Reference.
In order to select this type of backend the connector URL should use the http
or https
scheme; for example, to use a local HTTP Connector use http://127.0.0.1:12345
.
USB Connector
This kind of Connector is a direct-access USB backend that talks directly with a YubiHSM device. The USB Connector is built into libyubihsm
. This renders it unnecessary to run an additional component (i.e., the external Connector) at the cost of requiring exclusive access to a YubiHSM device.
In order to select this type of backend the connector URL should use the yhusb
scheme. For example, to use a local device with serial number 123456 use yhusb://serial=123456
.