use crate::md4::block_checksum;
use crate::Archive;
fn feed_bytes(seed: Option<i32>, crcs: &[u32]) -> Vec<u8> {
let mut buffer = Vec::with_capacity((crcs.len() + 1) * 4);
if let Some(seed_value) = seed {
buffer.extend_from_slice(&seed_value.to_le_bytes());
}
for &crc in crcs {
buffer.extend_from_slice(&crc.to_le_bytes());
}
buffer
}
impl Archive {
pub fn checksum(&self) -> u32 {
block_checksum(&feed_bytes(None, &self.content_crc_feed()))
}
pub fn pure_checksum(&self, seed: i32) -> u32 {
block_checksum(&feed_bytes(Some(seed), &self.content_crc_feed()))
}
}