diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-11-09 10:25:45 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-11-09 10:25:45 +0200 |
commit | 0809fb0ff525774b90c2a0d33b4b42752bc60b41 (patch) | |
tree | 34a8a5e9db548b966f590415142b0b49e673274b /src | |
parent | f2d97ebf2efdc6d33492f00672a98c1cc52681a1 (diff) | |
download | obnam2-0809fb0ff525774b90c2a0d33b4b42752bc60b41.tar.gz |
refactor: move sha256 checksumming to its own module
Diffstat (limited to 'src')
-rw-r--r-- | src/chunker.rs | 8 | ||||
-rw-r--r-- | src/client.rs | 4 | ||||
-rw-r--r-- | src/lib.rs | 1 |
3 files changed, 6 insertions, 7 deletions
diff --git a/src/chunker.rs b/src/chunker.rs index f4ca74c..145b1db 100644 --- a/src/chunker.rs +++ b/src/chunker.rs @@ -1,6 +1,6 @@ +use crate::checksummer::sha256; use crate::chunk::DataChunk; use crate::chunkmeta::ChunkMeta; -use sha2::{Digest, Sha256}; use std::io::prelude::*; pub struct Chunker { @@ -36,12 +36,8 @@ impl Chunker { } let buffer = &self.buf.as_slice()[..used]; - let mut hasher = Sha256::new(); - hasher.update(buffer); - let hash = hasher.finalize(); - let hash = format!("{:x}", hash); + let hash = sha256(buffer); let meta = ChunkMeta::new(&hash); - let chunk = DataChunk::new(buffer.to_vec()); Ok(Some((meta, chunk))) } diff --git a/src/client.rs b/src/client.rs index 1dbe1d0..24d961a 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,3 +1,4 @@ +use crate::checksummer::sha256; use crate::chunk::DataChunk; use crate::chunk::GenerationChunk; use crate::chunker::Chunker; @@ -62,7 +63,8 @@ impl BackupClient { pub fn upload_generation(&self, filename: &Path, size: usize) -> anyhow::Result<ChunkId> { let ids = self.read_file(filename, size)?; let gen = GenerationChunk::new(ids); - let meta = ChunkMeta::new_generation("checksum", "endtime"); + let data = gen.to_data_chunk()?; + let meta = ChunkMeta::new_generation(&sha256(data.data()), "timestamp"); let gen_id = self.upload_gen_chunk(meta, gen)?; Ok(gen_id) } @@ -1,3 +1,4 @@ +pub mod checksummer; pub mod chunk; pub mod chunker; pub mod chunkid; |