diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2019-01-25 18:46:57 +0000 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2019-01-25 19:49:35 +0100 |
commit | 809d31a4273505487febb2dd281376d2bb3766ab (patch) | |
tree | 127b0fa98b7c9e309e7de9a05506dba720e878af /src | |
parent | 846c34226572d53bf93bb4191f4742eb6eaa37b1 (diff) | |
download | nitrokey-rs-809d31a4273505487febb2dd281376d2bb3766ab.tar.gz nitrokey-rs-809d31a4273505487febb2dd281376d2bb3766ab.tar.bz2 |
Remove rand_core::Error from public API
rand_core does not have a stable release yet, and it is unlikely that
there will be one soon. To be able to stabilize nitrokey without
waiting for a stable rand_core version, we remove the rand_core::Error
type from the public API and replace it with a Box<dyn error::Error>.
Diffstat (limited to 'src')
-rw-r--r-- | src/error.rs | 10 | ||||
-rw-r--r-- | src/util.rs | 2 |
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) |