From 66a67b7b69b9cb43a810449761c78883e9e11bd6 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 12 Dec 2017 17:41:01 +0100 Subject: C API for Encrypted volume ro/rw switch Signed-off-by: Szczepan Zalega --- NK_C_API.cc | 14 ++++++++++++++ NK_C_API.h | 23 +++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/NK_C_API.cc b/NK_C_API.cc index c886b6a..9b53b49 100644 --- a/NK_C_API.cc +++ b/NK_C_API.cc @@ -509,6 +509,20 @@ extern "C" { }); } + NK_C_API int NK_set_encrypted_read_only(const char* admin_pin) { + auto m = NitrokeyManager::instance(); + return get_without_result([&]() { + m->set_encrypted_volume_read_only(admin_pin); + }); + } + + NK_C_API int NK_set_encrypted_read_write(const char* admin_pin) { + auto m = NitrokeyManager::instance(); + return get_without_result([&]() { + m->set_encrypted_volume_read_write(admin_pin); + }); + } + NK_C_API int NK_export_firmware(const char* admin_pin) { auto m = NitrokeyManager::instance(); return get_without_result([&]() { diff --git a/NK_C_API.h b/NK_C_API.h index 0131caa..bd7130f 100644 --- a/NK_C_API.h +++ b/NK_C_API.h @@ -444,6 +444,29 @@ extern "C" { */ NK_C_API int NK_set_unencrypted_read_write(const char* user_pin); + /** + * Make encrypted volume read-only. + * Device hides encrypted volume for a second therefore make sure + * buffers are flushed before running. + * Storage only + * @param admin_pin 20 characters + * @return command processing error code + */ + NK_C_API int NK_set_encrypted_read_only(const char* admin_pin); + + /** + * Make encrypted volume read-write. + * Device hides encrypted volume for a second therefore make sure + * buffers are flushed before running. + * Storage only + * @param admin_pin 20 characters + * @return command processing error code + */ + NK_C_API int NK_set_encrypted_read_write(const char* admin_pin); + + + + /** * Exports device's firmware to unencrypted volume. * Storage only -- cgit v1.2.3