[authfs][refactoring] Use crate hex to decode hex string
Bug: 239413416
Test: m authfs && atest authfs_device_test_src_lib
Change-Id: I9379ed34c577e8f8ca365186470a298740b43c2c
diff --git a/authfs/Android.bp b/authfs/Android.bp
index a4151c2..8ac600d 100644
--- a/authfs/Android.bp
+++ b/authfs/Android.bp
@@ -19,6 +19,7 @@
"libclap",
"libfsverity_digests_proto_rust",
"libfuse_rust",
+ "libhex",
"liblibc",
"liblog_rust",
"libnix",
diff --git a/authfs/src/main.rs b/authfs/src/main.rs
index 9ff0ae3..e14b771 100644
--- a/authfs/src/main.rs
+++ b/authfs/src/main.rs
@@ -169,21 +169,6 @@
})
}
-fn from_hex_string(s: &str) -> Result<Vec<u8>> {
- if s.len() % 2 == 1 {
- bail!("Incomplete hex string: {}", s);
- } else {
- let results = (0..s.len())
- .step_by(2)
- .map(|i| {
- u8::from_str_radix(&s[i..i + 2], 16)
- .map_err(|e| anyhow!("Cannot parse hex {}: {}", &s[i..i + 2], e))
- })
- .collect::<Result<Vec<_>>>();
- Ok(results?)
- }
-}
-
fn new_remote_verified_file_entry(
service: file::VirtFdService,
remote_fd: i32,
@@ -193,7 +178,7 @@
reader: LazyVerifiedReadonlyFile::prepare_by_fd(
service,
remote_fd,
- from_hex_string(expected_digest)?,
+ hex::decode(expected_digest)?,
),
})
}
@@ -332,18 +317,3 @@
std::process::exit(1);
}
}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn parse_hex_string() {
- assert_eq!(from_hex_string("deadbeef").unwrap(), vec![0xde, 0xad, 0xbe, 0xef]);
- assert_eq!(from_hex_string("DEADBEEF").unwrap(), vec![0xde, 0xad, 0xbe, 0xef]);
- assert_eq!(from_hex_string("").unwrap(), Vec::<u8>::new());
-
- assert!(from_hex_string("deadbee").is_err());
- assert!(from_hex_string("X").is_err());
- }
-}