diff options
author | Daniel Mueller <deso@posteo.net> | 2019-01-08 19:45:45 -0800 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2019-01-09 15:42:30 +0100 |
commit | 0f157082bb75d08ad4fd9bfd1cdf6646fb374c3f (patch) | |
tree | 2e0576a5a480225daace9918c3e44f1419341be4 | |
parent | bad12ad3c57c67d42243338af7d65c3591fed327 (diff) | |
download | nitrokey-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.
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | src/util.rs | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index f79111e..9f096b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Unreleased +- Make three additional error codes known: `CommandError::StringTooLong`, + `CommandError::InvalidHexString` and `CommandError::TargetBufferTooSmall`. + # v0.3.1 (2019-01-07) - Use `nitrokey-test` to select and execute the unit tests. - Add support for the hidden volumes on a Nitrokey Storage 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()), } } |