From def4c3cc3cdffc966eeca3b58605da0e7fe12cca Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Fri, 11 Jan 2019 13:51:04 +0000 Subject: Add the wink method to the Storage struct This patch adds the wink method to the Storage struct that lets the Nitrokey device blink until reconnected. We do not test this method as it does not change the state that we can observe. --- CHANGELOG.md | 3 ++- TODO.md | 1 - src/device.rs | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6d561d..b475168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ # Unreleased - Make three additional error codes known: `CommandError::StringTooLong`, `CommandError::InvalidHexString` and `CommandError::TargetBufferTooSmall`. -- Add the `get_library_version` method to query the libnitrokey version. +- Add the `get_library_version` function to query the libnitrokey version. +- Add the `wink` method to the `Storage` struct. # v0.3.1 (2019-01-07) - Use `nitrokey-test` to select and execute the unit tests. diff --git a/TODO.md b/TODO.md index 110b9a2..2fc40d3 100644 --- a/TODO.md +++ b/TODO.md @@ -17,7 +17,6 @@ - `NK_connect_with_ID` - `NK_get_device_model` - `NK_get_storage_production_info` - - `NK_wink` - Fix timing issues with the `totp_no_pin` and `totp_pin` test cases. - Clear passwords from memory. - Find a nicer syntax for the `write_config` test. diff --git a/src/device.rs b/src/device.rs index 2eee08e..e047975 100644 --- a/src/device.rs +++ b/src/device.rs @@ -89,7 +89,6 @@ impl fmt::Display for Model { /// ``` /// /// [`connect`]: fn.connect.html -// TODO: add example for Storage-specific code #[derive(Debug)] pub enum DeviceWrapper { /// A Nitrokey Storage device. @@ -1102,6 +1101,11 @@ impl Storage { let result = get_command_result(raw_result); result.and(Ok(StorageStatus::from(raw_status))) } + + /// Blinks the red and green LED alternatively and infinitely until the device is reconnected. + pub fn wink(&self) -> Result<(), CommandError> { + get_command_result(unsafe { nitrokey_sys::NK_wink() }) + } } impl Drop for Storage { -- cgit v1.2.3