Split digest and hexdigest for future reference
This commit is contained in:
parent
0871c18e19
commit
f6744d3120
@ -39,10 +39,10 @@ fn leftrotate(x: u32, amount: usize) -> u32 {
|
|||||||
(x << amount) | (x >> (32 - amount))
|
(x << amount) | (x >> (32 - amount))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn hexdigest<B>(message: B) -> String
|
pub fn digest<B>(message: B) -> [u8; 16]
|
||||||
where B: AsRef<[u8]>
|
where B: AsRef<[u8]>
|
||||||
{
|
{
|
||||||
use std::{convert::TryInto, fmt::Write};
|
use std::convert::TryInto;
|
||||||
|
|
||||||
let message = message.as_ref();
|
let message = message.as_ref();
|
||||||
let message_len = message.len();
|
let message_len = message.len();
|
||||||
@ -86,10 +86,15 @@ pub fn hexdigest<B>(message: B) -> String
|
|||||||
d0 = d0.wrapping_add(d);
|
d0 = d0.wrapping_add(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
let digest = [a0.to_le_bytes(), b0.to_le_bytes(), c0.to_le_bytes(), d0.to_le_bytes()].concat();
|
[a0.to_le_bytes(), b0.to_le_bytes(), c0.to_le_bytes(), d0.to_le_bytes()].concat().try_into().unwrap()
|
||||||
let hex_len = digest.len();
|
}
|
||||||
|
|
||||||
digest.into_iter().fold(String::with_capacity(hex_len), |mut acc, val| {
|
pub fn hexdigest<B>(message: B) -> String
|
||||||
|
where B: AsRef<[u8]>
|
||||||
|
{
|
||||||
|
use std::fmt::Write;
|
||||||
|
|
||||||
|
digest(message).iter().fold(String::with_capacity(16), |mut acc, val| {
|
||||||
write!(acc, "{:02x}", val).unwrap();
|
write!(acc, "{:02x}", val).unwrap();
|
||||||
acc
|
acc
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user