aboutsummaryrefslogtreecommitdiff
path: root/src/device/storage.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2020-02-03 12:59:37 +0100
committerRobin Krahl <robin.krahl@ireas.org>2020-02-03 12:59:37 +0100
commita3dd6afb8c23c8975737d1484e152d530a975c11 (patch)
tree83c94299f3e8efdf288a569ea36e25a053b8d4f3 /src/device/storage.rs
parent3bdc550ce31aa9a8aaec13b4901e8517d34272be (diff)
parent2a8ce725407f32db5ad61c37475719737c9b5c9c (diff)
downloadnitrokey-rs-a3dd6afb8c23c8975737d1484e152d530a975c11.tar.gz
nitrokey-rs-a3dd6afb8c23c8975737d1484e152d530a975c11.tar.bz2
Merge branch 'release-0.6.0'
Diffstat (limited to 'src/device/storage.rs')
-rw-r--r--src/device/storage.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/device/storage.rs b/src/device/storage.rs
index deb2844..5669a91 100644
--- a/src/device/storage.rs
+++ b/src/device/storage.rs
@@ -7,7 +7,7 @@ use std::ops;
use nitrokey_sys;
-use crate::device::{Device, FirmwareVersion, Model, Status};
+use crate::device::{Device, FirmwareVersion, Model, SerialNumber, Status};
use crate::error::{CommandError, Error};
use crate::otp::GenerateOtp;
use crate::util::{get_command_result, get_cstring, get_last_error};
@@ -678,7 +678,7 @@ impl<'a> Storage<'a> {
if usage_data.write_level_min > usage_data.write_level_max
|| usage_data.write_level_max > 100
{
- Err(Error::UnexpectedError)
+ Err(Error::UnexpectedError("Invalid write levels".to_owned()))
} else {
Ok(ops::Range {
start: usage_data.write_level_min,
@@ -708,10 +708,14 @@ impl<'a> Storage<'a> {
match status {
0..=100 => u8::try_from(status)
.map(OperationStatus::Ongoing)
- .map_err(|_| Error::UnexpectedError),
+ .map_err(|_| {
+ Error::UnexpectedError("Cannot create u8 from operation status".to_owned())
+ }),
-1 => Ok(OperationStatus::Idle),
-2 => Err(get_last_error()),
- _ => Err(Error::UnexpectedError),
+ _ => Err(Error::UnexpectedError(
+ "Invalid operation status".to_owned(),
+ )),
}
}
@@ -823,7 +827,7 @@ impl<'a> Device<'a> for Storage<'a> {
let storage_status = self.get_storage_status()?;
status.firmware_version = storage_status.firmware_version;
- status.serial_number = storage_status.serial_number_smart_card;
+ status.serial_number = SerialNumber::new(storage_status.serial_number_smart_card);
Ok(status)
}