aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/error.rs10
-rw-r--r--src/util.rs2
2 files changed, 3 insertions, 9 deletions
diff --git a/src/error.rs b/src/error.rs
index 9cdb932..1b36975 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -19,7 +19,7 @@ pub enum Error {
/// A library usage error.
LibraryError(LibraryError),
/// An error that occured during random number generation.
- RandError(rand_core::Error),
+ RandError(Box<dyn error::Error>),
/// An error that is caused by an unexpected value returned by libnitrokey.
UnexpectedError,
/// An unknown error returned by libnitrokey.
@@ -60,12 +60,6 @@ impl From<LibraryError> for Error {
}
}
-impl From<rand_core::Error> for Error {
- fn from(error: rand_core::Error) -> Self {
- Error::RandError(error)
- }
-}
-
impl From<str::Utf8Error> for Error {
fn from(error: str::Utf8Error) -> Self {
Error::Utf8Error(error)
@@ -84,7 +78,7 @@ impl error::Error for Error {
Error::CommandError(ref err) => Some(err),
Error::CommunicationError(ref err) => Some(err),
Error::LibraryError(ref err) => Some(err),
- Error::RandError(ref err) => Some(err),
+ Error::RandError(ref err) => Some(err.as_ref()),
Error::UnexpectedError => None,
Error::Unknown(_) => None,
Error::Utf8Error(ref err) => Some(err),
diff --git a/src/util.rs b/src/util.rs
index 5f25655..d87cd7c 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -73,7 +73,7 @@ pub fn get_last_error() -> Error {
}
pub fn generate_password(length: usize) -> Result<Vec<u8>, Error> {
- let mut rng = OsRng::new()?;
+ let mut rng = OsRng::new().map_err(|err| Error::RandError(Box::new(err)))?;
let mut data = vec![0u8; length];
rng.fill_bytes(&mut data[..]);
Ok(data)