diff --git a/lib/tools/crypto/src/bases/b16.rs b/lib/tools/crypto/src/bases/b16.rs index 7e687e352e3b0cd5d261c63e7520abaf2f3ba1b0..d4936f7d81e87ff4b518c06af770fd8ac33e187d 100644 --- a/lib/tools/crypto/src/bases/b16.rs +++ b/lib/tools/crypto/src/bases/b16.rs @@ -40,23 +40,22 @@ pub fn str_hex_to_32bytes(text: &str) -> Result<[u8; 32], BaseConvertionError> { let byte1 = chars[i].to_digit(16); let byte2 = chars[i + 1].to_digit(16); - if byte1.is_none() { + if let Some(byte1) = byte1 { + if let Some(byte2) = byte2 { + let byte = ((byte1 as u8) << 4) | byte2 as u8; + bytes[i / 2] = byte; + } else { + return Err(BaseConvertionError::InvalidCharacter { + character: chars[i + 1], + offset: i + 1, + }); + } + } else { return Err(BaseConvertionError::InvalidCharacter { character: chars[i], offset: i, }); - } else if byte2.is_none() { - return Err(BaseConvertionError::InvalidCharacter { - character: chars[i + 1], - offset: i + 1, - }); } - - let byte1 = byte1.unwrap_or_else(|| panic!(dbg!("dev error"))) as u8; - let byte2 = byte2.unwrap_or_else(|| panic!(dbg!("dev error"))) as u8; - - let byte = (byte1 << 4) | byte2; - bytes[i / 2] = byte; } Ok(bytes) diff --git a/lib/tools/crypto/src/lib.rs b/lib/tools/crypto/src/lib.rs index 8fde77e81ada2b03e3977aedd25830e01c761cc1..558c65744df99cb91c7a01b59192bee06d01fa0b 100644 --- a/lib/tools/crypto/src/lib.rs +++ b/lib/tools/crypto/src/lib.rs @@ -15,8 +15,9 @@ //! Manage cryptographic operations for the DUP (DUniter Protocol). -#![deny(clippy::option_unwrap_used, clippy::result_unwrap_used)] #![deny( + clippy::option_unwrap_used, + clippy::result_unwrap_used, missing_docs, missing_debug_implementations, missing_copy_implementations,