From 8d4a7d0ec9c3a82c7546482875be80827e2be57a Mon Sep 17 00:00:00 2001 From: Daniel Mueller Date: Thu, 17 Aug 2017 13:39:56 +0200 Subject: Fix display of firmware version The nitrokey-storage-firmware package defines an array of four byte values to hold information about the firmware version. libnitrokey uses a similar definition but overlays it with some more semantically meaningful information by putting it into a union: union { uint8_t VersionInfo_au8[4]; struct { uint8_t __unused; uint8_t major; uint8_t __unused2; uint8_t minor; } versionInfo; }; In order to derive the firmware version representation for nitrocli we used the same major/minor version definition as libnitrokey. This definition, however, is wrong or at least not in line with how the firmware is versioned officially. This change reworks the way we interpret the version information reported by the Nitrokey Storage device. Like the firmware, we treat the first byte as the major version and the second one as the minor version. The remaining two bytes seem to represent the build number and an internal version according to usage of those fields in nitrokey-storage-firmware but we ignore both to keep the reported string similar to that of the nitrokey-app. --- nitrocli/README.md | 2 +- nitrocli/src/nitrokey.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nitrocli/README.md b/nitrocli/README.md index 2817691..4e41c80 100644 --- a/nitrocli/README.md +++ b/nitrocli/README.md @@ -23,7 +23,7 @@ $ nitrocli open $ nitrocli status Status: SD card ID: 0xdeadbeef - firmware version: 44.0 + firmware version: 0.44 firmware: unlocked storage keys: created user retry count: 3 diff --git a/nitrocli/src/nitrokey.rs b/nitrocli/src/nitrokey.rs index 00a681c..2691c01 100644 --- a/nitrocli/src/nitrokey.rs +++ b/nitrocli/src/nitrokey.rs @@ -292,10 +292,10 @@ pub struct DeviceStatusResponse { pub magic: u16, pub unencrypted_volume_read_only: u8, pub encrypted_volume_read_only: u8, - pub padding1: u8, pub version_major: u8, - pub padding2: u8, pub version_minor: u8, + pub version_build: u8, + pub version_internal: u8, pub hidden_volume_read_only: u8, pub firmware_locked: u8, pub new_sdcard_found: u8, -- cgit v1.2.1