summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NK_C_API.cc7
-rw-r--r--NK_C_API.h14
2 files changed, 21 insertions, 0 deletions
diff --git a/NK_C_API.cc b/NK_C_API.cc
index 6afce74..33a5fbb 100644
--- a/NK_C_API.cc
+++ b/NK_C_API.cc
@@ -538,6 +538,13 @@ extern "C" {
});
}
+ NK_C_API int NK_enable_firmware_update(const char* update_password){
+ auto m = NitrokeyManager::instance();
+ return get_without_result([&]() {
+ m->enable_firmware_update(update_password);
+ });
+ }
+
NK_C_API const char* NK_get_status_storage_as_string() {
auto m = NitrokeyManager::instance();
return get_with_string_result([&]() {
diff --git a/NK_C_API.h b/NK_C_API.h
index aa89ece..ba6b7eb 100644
--- a/NK_C_API.h
+++ b/NK_C_API.h
@@ -475,6 +475,20 @@ extern "C" {
const char* new_update_password);
/**
+ * Enter update mode. Needs update password.
+ * When device is in update mode it no longer accepts any HID commands until
+ * firmware is launched (regardless of being updated or not).
+ * Smartcard (through CCID interface) and its all volumes are not visible as well.
+ * Its VID and PID are changed to factory-default to be detected by flashing software.
+ * Result of this command can be reversed by using 'launch' command.
+ * For dfu-programmer it would be: 'dfu-programmer at32uc3a3256s launch'.
+ * Storage only
+ * @param update_password 20 characters
+ * @return command processing error code
+ */
+ NK_C_API int NK_enable_firmware_update(const char* update_password);
+
+ /**
* Get Storage stick status as string.
* Storage only
* @return string with devices attributes