summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Mueller <deso@posteo.net>2019-01-08 19:45:45 -0800
committerRobin Krahl <robin.krahl@ireas.org>2019-01-09 15:42:30 +0100
commit0f157082bb75d08ad4fd9bfd1cdf6646fb374c3f (patch)
tree2e0576a5a480225daace9918c3e44f1419341be4 /src
parentbad12ad3c57c67d42243338af7d65c3591fed327 (diff)
downloadnitrokey-rs-0f157082bb75d08ad4fd9bfd1cdf6646fb374c3f.tar.gz
nitrokey-rs-0f157082bb75d08ad4fd9bfd1cdf6646fb374c3f.tar.bz2
Make three more error codes known
Three more error codes are defined in libnitrokey but currently reported as the CommandError::Unknown variant: 200: representing a string that exceeds a limit 202: indicating a string that is not in hexadecimal format when it should be 203: suggesting that the target buffer is smaller than the source buffer and, hence, too small This change introduces the CommandError variants StringTooLong, InvalidHexString and TargetBufferTooSmall, respectively, representing those errors.
Diffstat (limited to 'src')
-rw-r--r--src/util.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs
index 1ecc0b7..cb109d0 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -36,8 +36,14 @@ pub enum CommandError {
Undefined,
/// You passed a string containing a null byte.
InvalidString,
+ /// A supplied string exceeded a length limit.
+ StringTooLong,
/// You passed an invalid slot.
InvalidSlot,
+ /// The supplied string was not in hexadecimal format.
+ InvalidHexString,
+ /// The target buffer was smaller than the source.
+ TargetBufferTooSmall,
}
/// Log level for libnitrokey.
@@ -134,7 +140,12 @@ impl CommandError {
}
CommandError::Undefined => "An unspecified error occurred".into(),
CommandError::InvalidString => "You passed a string containing a null byte".into(),
+ CommandError::StringTooLong => "The supplied string is too long".into(),
CommandError::InvalidSlot => "The given slot is invalid".into(),
+ CommandError::InvalidHexString => {
+ "The supplied string is not in hexadecimal format".into()
+ }
+ CommandError::TargetBufferTooSmall => "The target buffer is too small".into(),
}
}
}
@@ -158,7 +169,10 @@ impl From<c_int> for CommandError {
8 => CommandError::NotSupported,
9 => CommandError::UnknownCommand,
10 => CommandError::AesDecryptionFailed,
+ 200 => CommandError::StringTooLong,
201 => CommandError::InvalidSlot,
+ 202 => CommandError::InvalidHexString,
+ 203 => CommandError::TargetBufferTooSmall,
x => CommandError::Unknown(x.into()),
}
}