diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2019-01-29 16:37:22 +0100 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2019-01-29 16:37:22 +0100 |
commit | 1bf90425d2006558ce4f4aac0ed5680d31b77918 (patch) | |
tree | c6789df5d10d1b5f6b83c5d1c7c2889e5ad2a6d9 /NK_C_API.h | |
parent | b0d1d6a1a44210a25b3d0e6950ec08f551714ccf (diff) | |
parent | dc9dd81105634aeb100c47637fedef425f0ac6f9 (diff) | |
download | libnitrokey-1bf90425d2006558ce4f4aac0ed5680d31b77918.tar.gz libnitrokey-1bf90425d2006558ce4f4aac0ed5680d31b77918.tar.bz2 |
Merge branch 'pr_155'
Add Status structure, and a general command for using it as a result.
Usable to limit calls to the device, when multiple status fields are
required at given time.
Tested on Nitrokey Pro v0.7 and v0.10.
Run offline tests as well (C++ and Python).
Fixes #155
Diffstat (limited to 'NK_C_API.h')
-rw-r--r-- | NK_C_API.h | 64 |
1 files changed, 63 insertions, 1 deletions
@@ -138,6 +138,47 @@ extern "C" { }; /** + * Stores the common device status for all Nitrokey devices. + */ + struct NK_status { + /** + * The major firmware version, e. g. 0 in v0.40. + */ + uint8_t firmware_version_major; + /** + * The minor firmware version, e. g. 40 in v0.40. + */ + uint8_t firmware_version_minor; + /** + * The serial number of the smart card. + */ + uint32_t serial_number_smart_card; + /** + * The HOTP slot to generate a password from if the numlock + * key is pressed twice (slot 0-1, or any other value to + * disable the function). + */ + uint8_t config_numlock; + /** + * The HOTP slot to generate a password from if the capslock + * key is pressed twice (slot 0-1, or any other value to + * disable the function). + */ + uint8_t config_capslock; + /** + * The HOTP slot to generate a password from if the scrolllock + * key is pressed twice (slot 0-1, or any other value to + * disable the function). + */ + uint8_t config_scrolllock; + /** + * Indicates whether the user password is required to generate + * an OTP value. + */ + bool otp_user_password; + }; + + /** * Stores the status of a Storage device. */ struct NK_storage_status { @@ -312,10 +353,31 @@ extern "C" { NK_C_API enum NK_device_model NK_get_device_model(); /** + * Return the debug status string. Debug purposes. This function is + * deprecated in favor of NK_get_status_as_string. + * @return string representation of the status or an empty string + * if the command failed + */ + DEPRECATED + NK_C_API char * NK_status(); + + /** * Return the debug status string. Debug purposes. + * @return string representation of the status or an empty string + * if the command failed + */ + NK_C_API char * NK_get_status_as_string(); + + /** + * Get the stick status common to all Nitrokey devices and return the + * command processing error code. If the code is zero, i. e. the + * command was successful, the storage status is written to the output + * pointer's target. The output pointer must not be null. + * + * @param out the output pointer for the status * @return command processing error code */ - NK_C_API char * NK_status(); + NK_C_API int NK_get_status(struct NK_status* out); /** * Return the device's serial number string in hex. |