aboutsummaryrefslogtreecommitdiff
path: root/NK_C_API.cc
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2020-06-13 19:39:14 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2020-06-13 19:39:14 +0200
commit9849224e27c3c82e2f4efb6e491b6975bb4ecb25 (patch)
tree67c6f11d43e844c8f60642daa4c0f35701930296 /NK_C_API.cc
parent9b929a0bacd03657ddc232e6b4a9ed0fade82f68 (diff)
parent0270a9b3de4b45fcfcb83f8e20a78702811d4192 (diff)
downloadlibnitrokey-9849224e27c3c82e2f4efb6e491b6975bb4ecb25.tar.gz
libnitrokey-9849224e27c3c82e2f4efb6e491b6975bb4ecb25.tar.bz2
Merge branch 'read-config-struct'
Add NK_config struct and read/write functions Fixes #176
Diffstat (limited to 'NK_C_API.cc')
-rw-r--r--NK_C_API.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/NK_C_API.cc b/NK_C_API.cc
index 3573404..538a6a1 100644
--- a/NK_C_API.cc
+++ b/NK_C_API.cc
@@ -220,6 +220,12 @@ extern "C" {
});
}
+ NK_C_API int NK_write_config_struct(struct NK_config config,
+ const char *admin_temporary_password) {
+ return NK_write_config(config.numlock, config.capslock, config.scrolllock, config.enable_user_password,
+ config.disable_user_password, admin_temporary_password);
+ }
+
NK_C_API uint8_t* NK_read_config() {
auto m = NitrokeyManager::instance();
@@ -233,6 +239,21 @@ extern "C" {
delete[] config;
}
+ NK_C_API int NK_read_config_struct(struct NK_config* out) {
+ if (out == nullptr) {
+ return -1;
+ }
+ auto m = NitrokeyManager::instance();
+ return get_without_result([&]() {
+ auto v = m->read_config();
+ out->numlock = v[0];
+ out->capslock = v[1];
+ out->scrolllock = v[2];
+ out->enable_user_password = v[3];
+ out->disable_user_password = v[4];
+ });
+ }
+
NK_C_API enum NK_device_model NK_get_device_model() {
auto m = NitrokeyManager::instance();