summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-11-09 10:25:45 +0200
committerLars Wirzenius <liw@liw.fi>2020-11-09 10:25:45 +0200
commit0809fb0ff525774b90c2a0d33b4b42752bc60b41 (patch)
tree34a8a5e9db548b966f590415142b0b49e673274b /src
parentf2d97ebf2efdc6d33492f00672a98c1cc52681a1 (diff)
downloadobnam2-0809fb0ff525774b90c2a0d33b4b42752bc60b41.tar.gz
refactor: move sha256 checksumming to its own module
Diffstat (limited to 'src')
-rw-r--r--src/chunker.rs8
-rw-r--r--src/client.rs4
-rw-r--r--src/lib.rs1
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)
}
diff --git a/src/lib.rs b/src/lib.rs
index be9a508..f72ea56 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,4 @@
+pub mod checksummer;
pub mod chunk;
pub mod chunker;
pub mod chunkid;