src/backup/data_{chunk,blob}.rs: add verify_crc method
This commit is contained in:
parent
fef44d4f78
commit
b208da8393
@ -54,6 +54,15 @@ impl DataBlob {
|
||||
hasher.finalize()
|
||||
}
|
||||
|
||||
/// verify the CRC32 checksum
|
||||
pub fn verify_crc(&self) -> Result<(), Error> {
|
||||
let expected_crc = self.compute_crc();
|
||||
if expected_crc != self.crc() {
|
||||
bail!("Data blob has wrong CRC checksum.");
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn encode(
|
||||
data: &[u8],
|
||||
config: Option<&CryptConfig>,
|
||||
|
@ -61,6 +61,15 @@ impl DataChunk {
|
||||
hasher.finalize()
|
||||
}
|
||||
|
||||
/// verify the CRC32 checksum
|
||||
pub fn verify_crc(&self) -> Result<(), Error> {
|
||||
let expected_crc = self.compute_crc();
|
||||
if expected_crc != self.crc() {
|
||||
bail!("Data chunk has wrong CRC checksum.");
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn encode(
|
||||
data: &[u8],
|
||||
config: Option<&CryptConfig>,
|
||||
|
@ -708,6 +708,7 @@ fn download(
|
||||
let writer = Vec::with_capacity(1024*1024);
|
||||
let blob_data = client.download(&path, writer).wait()?;
|
||||
let blob = DataBlob::from_raw(blob_data)?;
|
||||
blob.verify_crc()?;
|
||||
let raw_data = blob.decode(crypt_config.as_ref())?; // fixme
|
||||
|
||||
crate::tools::file_set_contents(target, &raw_data, None)?;
|
||||
|
Loading…
Reference in New Issue
Block a user