diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2020-01-11 20:05:39 +0100 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2020-01-11 20:25:56 +0100 |
commit | dbee55efa41496c8a683bfab96163facc93d6639 (patch) | |
tree | 93aa1d17acd18b6884b8421c593dab6e7cbf6011 /tests | |
parent | 1532f92de1d63613602acb0b68486361571f3e50 (diff) | |
download | nitrokey-rs-dbee55efa41496c8a683bfab96163facc93d6639.tar.gz nitrokey-rs-dbee55efa41496c8a683bfab96163facc93d6639.tar.bz2 |
Add support for the GET_STATUS command
This patch adds support for the GET_STATUS command that returns the
status information common to all Nitrokey devices. It can be accessed
using the Device::get_status function and is stored in a Status struct.
Due to a bug in the Storage firmware [0], the GET_STATUS command returns
wrong firmware versions and serial numbers. Until this is fixed in
libnitrokey [1], we have to manually execute the GET_DEVICE_STATUS
command to fix these values for the Nitrokey Storage.
Also, this leads to a name clash with the existing Storage::get_status
function, which will be renamed in an upcoming patch.
[0] https://github.com/Nitrokey/nitrokey-storage-firmware/issues/96
[1] https://github.com/Nitrokey/libnitrokey/issues/166
Diffstat (limited to 'tests')
-rw-r--r-- | tests/device.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/device.rs b/tests/device.rs index 509763b..92b79bd 100644 --- a/tests/device.rs +++ b/tests/device.rs @@ -153,6 +153,15 @@ fn disconnect(device: DeviceWrapper) { assert_empty_serial_number(); } +#[test_device] +fn get_status(device: DeviceWrapper) { + let status = unwrap_ok!(device.get_status()); + assert_ok!(status.firmware_version, device.get_firmware_version()); + let serial_number = format!("{:08x}", status.serial_number); + assert_ok!(serial_number, device.get_serial_number()); + assert_ok!(status.config, device.get_config()); +} + fn assert_valid_serial_number(serial_number: &str) { assert!(serial_number.is_ascii()); assert!(serial_number.chars().all(|c| c.is_ascii_hexdigit())); |