From 5a56b83084d797728e5ed557cce2637b3a1e7e56 Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Wed, 4 Apr 2018 23:54:07 +0200 Subject: Add NK_login_enum to the C API As with the C++ API, identifying the model by the first character of a string is not intuitive. This patch adds the NK_login_enum function to the C API that accepts an enum value instead of a string. It also adds a new enum NK_device_model as device::DeviceModel is an enum class and therefore cannot be used in C. --- NK_C_API.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'NK_C_API.h') diff --git a/NK_C_API.h b/NK_C_API.h index 27730c9..b78bde5 100644 --- a/NK_C_API.h +++ b/NK_C_API.h @@ -34,6 +34,21 @@ #ifdef __cplusplus extern "C" { #endif + + /** + * The Nitrokey device models supported by the API. + */ + enum NK_device_model { + /** + * Nitrokey Pro. + */ + NK_PRO, + /** + * Nitrokey Storage. + */ + NK_STORAGE + }; + /** * Set debug level of messages written on stderr * @param state state=True - most messages, state=False - only errors level @@ -53,6 +68,13 @@ extern "C" { */ NK_C_API int NK_login(const char *device_model); + /** + * Connect to device of given model. Currently library can be connected only to one device at once. + * @param device_model NK_device_model: NK_PRO: Nitrokey Pro, NK_STORAGE: Nitrokey Storage + * @return 1 if connected, 0 if wrong model or cannot connect + */ + NK_C_API int NK_login_enum(NK_device_model device_model); + /** * Connect to first available device, starting checking from Pro 1st to Storage 2nd. * @return 1 if connected, 0 if wrong model or cannot connect -- cgit v1.2.1