pub fn unhex(value: &str) -> Vec<u8> {
(0..value.len())
.step_by(2)
.map(|index| u8::from_str_radix(&value[index..index + 2], 16).unwrap())
.collect()
}
#[allow(dead_code)]
pub fn xor(a: &[u8], b: &[u8]) -> Vec<u8> {
a.iter().zip(b).map(|(left, right)| left ^ right).collect()
}