summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/chunk.rs6
-rw-r--r--src/chunker.rs4
-rw-r--r--src/chunkid.rs6
-rw-r--r--src/chunkmeta.rs20
-rw-r--r--src/cipher.rs6
-rw-r--r--src/client.rs4
-rw-r--r--src/index.rs18
-rw-r--r--src/label.rs (renamed from src/checksummer.rs)8
-rw-r--r--src/lib.rs2
-rw-r--r--src/server.rs4
10 files changed, 39 insertions, 39 deletions
diff --git a/src/chunk.rs b/src/chunk.rs
index df16a98..4f604b9 100644
--- a/src/chunk.rs
+++ b/src/chunk.rs
@@ -1,8 +1,8 @@
//! Chunks of data.
-use crate::checksummer::Checksum;
use crate::chunkid::ChunkId;
use crate::chunkmeta::ChunkMeta;
+use crate::label::Label;
use serde::{Deserialize, Serialize};
use std::default::Default;
@@ -97,7 +97,7 @@ impl GenerationChunk {
let json: String =
serde_json::to_string(self).map_err(GenerationChunkError::JsonGenerate)?;
let bytes = json.as_bytes().to_vec();
- let checksum = Checksum::sha256(&bytes);
+ let checksum = Label::sha256(&bytes);
let meta = ChunkMeta::new(&checksum);
Ok(DataChunk::new(bytes, meta))
}
@@ -185,7 +185,7 @@ impl ClientTrust {
pub fn to_data_chunk(&self) -> Result<DataChunk, ClientTrustError> {
let json: String = serde_json::to_string(self).map_err(ClientTrustError::JsonGenerate)?;
let bytes = json.as_bytes().to_vec();
- let checksum = Checksum::literal("client-trust");
+ let checksum = Label::literal("client-trust");
let meta = ChunkMeta::new(&checksum);
Ok(DataChunk::new(bytes, meta))
}
diff --git a/src/chunker.rs b/src/chunker.rs
index 7954621..2394230 100644
--- a/src/chunker.rs
+++ b/src/chunker.rs
@@ -1,8 +1,8 @@
//! Split file data into chunks.
-use crate::checksummer::Checksum;
use crate::chunk::DataChunk;
use crate::chunkmeta::ChunkMeta;
+use crate::label::Label;
use std::io::prelude::*;
use std::path::{Path, PathBuf};
@@ -54,7 +54,7 @@ impl FileChunks {
}
let buffer = &self.buf.as_slice()[..used];
- let hash = Checksum::sha256(buffer);
+ let hash = Label::sha256(buffer);
let meta = ChunkMeta::new(&hash);
let chunk = DataChunk::new(buffer.to_vec(), meta);
Ok(Some(chunk))
diff --git a/src/chunkid.rs b/src/chunkid.rs
index 3534627..50fc3d3 100644
--- a/src/chunkid.rs
+++ b/src/chunkid.rs
@@ -3,7 +3,7 @@
//! Chunk identifiers are chosen by the server. Each chunk has a
//! unique identifier, which isn't based on the contents of the chunk.
-use crate::checksummer::Checksum;
+use crate::label::Label;
use rusqlite::types::ToSqlOutput;
use rusqlite::ToSql;
use serde::{Deserialize, Serialize};
@@ -53,8 +53,8 @@ impl ChunkId {
}
/// Return the SHA256 checksum of the identifier.
- pub fn sha256(&self) -> Checksum {
- Checksum::sha256(self.id.as_bytes())
+ pub fn sha256(&self) -> Label {
+ Label::sha256(self.id.as_bytes())
}
}
diff --git a/src/chunkmeta.rs b/src/chunkmeta.rs
index 33c1070..1f591c6 100644
--- a/src/chunkmeta.rs
+++ b/src/chunkmeta.rs
@@ -1,6 +1,6 @@
//! Metadata about a chunk.
-use crate::checksummer::Checksum;
+use crate::label::Label;
use serde::{Deserialize, Serialize};
use std::default::Default;
use std::str::FromStr;
@@ -37,9 +37,9 @@ impl ChunkMeta {
/// Create a new data chunk.
///
/// Data chunks are not for generations.
- pub fn new(checksum: &Checksum) -> Self {
+ pub fn new(label: &Label) -> Self {
ChunkMeta {
- label: checksum.to_string(),
+ label: label.to_string(),
}
}
@@ -79,20 +79,20 @@ impl FromStr for ChunkMeta {
#[cfg(test)]
mod test {
- use super::{Checksum, ChunkMeta};
+ use super::{ChunkMeta, Label};
#[test]
fn new_creates_data_chunk() {
- let sum = Checksum::sha256_from_str_unchecked("abcdef");
+ let sum = Label::sha256(b"abcdef");
let meta = ChunkMeta::new(&sum);
- assert_eq!(meta.label(), "abcdef");
+ assert_eq!(meta.label(), &format!("{}", sum));
}
#[test]
fn new_generation_creates_generation_chunk() {
- let sum = Checksum::sha256_from_str_unchecked("abcdef");
+ let sum = Label::sha256(b"abcdef");
let meta = ChunkMeta::new(&sum);
- assert_eq!(meta.label(), "abcdef");
+ assert_eq!(meta.label(), &format!("{}", sum));
}
#[test]
@@ -113,7 +113,7 @@ mod test {
#[test]
fn generation_json_roundtrip() {
- let sum = Checksum::sha256_from_str_unchecked("abcdef");
+ let sum = Label::sha256(b"abcdef");
let meta = ChunkMeta::new(&sum);
let json = serde_json::to_string(&meta).unwrap();
let meta2 = serde_json::from_str(&json).unwrap();
@@ -122,7 +122,7 @@ mod test {
#[test]
fn data_json_roundtrip() {
- let sum = Checksum::sha256_from_str_unchecked("abcdef");
+ let sum = Label::sha256(b"abcdef");
let meta = ChunkMeta::new(&sum);
let json = meta.to_json_vec();
let meta2 = serde_json::from_slice(&json).unwrap();
diff --git a/src/cipher.rs b/src/cipher.rs
index ee7fb8f..7bd2e84 100644
--- a/src/cipher.rs
+++ b/src/cipher.rs
@@ -191,15 +191,15 @@ impl Nonce {
#[cfg(test)]
mod test {
- use crate::checksummer::Checksum;
use crate::chunk::DataChunk;
use crate::chunkmeta::ChunkMeta;
use crate::cipher::{CipherEngine, CipherError, CHUNK_V1, NONCE_SIZE};
+ use crate::label::Label;
use crate::passwords::Passwords;
#[test]
fn metadata_as_aad() {
- let sum = Checksum::sha256_from_str_unchecked("dummy-checksum");
+ let sum = Label::sha256(b"dummy data");
let meta = ChunkMeta::new(&sum);
let meta_as_aad = meta.to_json_vec();
let chunk = DataChunk::new("hello".as_bytes().to_vec(), meta);
@@ -212,7 +212,7 @@ mod test {
#[test]
fn round_trip() {
- let sum = Checksum::sha256_from_str_unchecked("dummy-checksum");
+ let sum = Label::sha256(b"dummy data");
let meta = ChunkMeta::new(&sum);
let chunk = DataChunk::new("hello".as_bytes().to_vec(), meta);
let pass = Passwords::new("secret");
diff --git a/src/client.rs b/src/client.rs
index 563921d..d8bf262 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -1,6 +1,5 @@
//! Client to the Obnam server HTTP API.
-use crate::checksummer::Checksum;
use crate::chunk::{
ClientTrust, ClientTrustError, DataChunk, GenerationChunk, GenerationChunkError,
};
@@ -10,6 +9,7 @@ use crate::cipher::{CipherEngine, CipherError};
use crate::config::{ClientConfig, ClientConfigError};
use crate::generation::{FinishedGeneration, GenId, LocalGeneration, LocalGenerationError};
use crate::genlist::GenerationList;
+use crate::label::Label;
use log::{debug, error, info};
use reqwest::header::HeaderMap;
@@ -196,7 +196,7 @@ impl BackupClient {
}
async fn find_client_trusts(&self) -> Result<Vec<ChunkId>, ClientError> {
- let label = format!("{}", Checksum::literal("client-trust"));
+ let label = format!("{}", Label::literal("client-trust"));
let body = match self.get("", &[("label", &label)]).await {
Ok((_, body)) => body,
Err(err) => return Err(err),
diff --git a/src/index.rs b/src/index.rs
index 11f3480..5310a44 100644
--- a/src/index.rs
+++ b/src/index.rs
@@ -1,8 +1,8 @@
//! An on-disk index of chunks for the server.
-use crate::checksummer::Checksum;
use crate::chunkid::ChunkId;
use crate::chunkmeta::ChunkMeta;
+use crate::label::Label;
use rusqlite::Connection;
use std::path::Path;
@@ -74,7 +74,7 @@ impl Index {
#[cfg(test)]
mod test {
- use crate::checksummer::Checksum;
+ use super::Label;
use super::{ChunkId, ChunkMeta, Index};
use std::path::Path;
@@ -87,20 +87,20 @@ mod test {
#[test]
fn remembers_inserted() {
let id: ChunkId = "id001".parse().unwrap();
- let sum = Checksum::sha256_from_str_unchecked("abc");
+ let sum = Label::sha256(b"abc");
let meta = ChunkMeta::new(&sum);
let dir = tempdir().unwrap();
let mut idx = new_index(dir.path());
idx.insert_meta(id.clone(), meta.clone()).unwrap();
assert_eq!(idx.get_meta(&id).unwrap(), meta);
- let ids = idx.find_by_label("abc").unwrap();
+ let ids = idx.find_by_label(&format!("{}", sum)).unwrap();
assert_eq!(ids, vec![id]);
}
#[test]
fn does_not_find_uninserted() {
let id: ChunkId = "id001".parse().unwrap();
- let sum = Checksum::sha256_from_str_unchecked("abc");
+ let sum = Label::sha256(b"abc");
let meta = ChunkMeta::new(&sum);
let dir = tempdir().unwrap();
let mut idx = new_index(dir.path());
@@ -111,19 +111,19 @@ mod test {
#[test]
fn removes_inserted() {
let id: ChunkId = "id001".parse().unwrap();
- let sum = Checksum::sha256_from_str_unchecked("abc");
+ let sum = Label::sha256(b"abc");
let meta = ChunkMeta::new(&sum);
let dir = tempdir().unwrap();
let mut idx = new_index(dir.path());
idx.insert_meta(id.clone(), meta).unwrap();
idx.remove_meta(&id).unwrap();
- let ids: Vec<ChunkId> = idx.find_by_label("abc").unwrap();
+ let ids: Vec<ChunkId> = idx.find_by_label(&format!("{}", sum)).unwrap();
assert_eq!(ids, vec![]);
}
}
mod sql {
- use super::{Checksum, IndexError};
+ use super::{IndexError, Label};
use crate::chunkid::ChunkId;
use crate::chunkmeta::ChunkMeta;
use log::error;
@@ -216,7 +216,7 @@ mod sql {
fn row_to_meta(row: &Row) -> rusqlite::Result<ChunkMeta> {
let hash: String = row.get("label")?;
- let sha256 = Checksum::sha256_from_str_unchecked(&hash);
+ let sha256 = Label::sha256_from_str_unchecked(&hash);
Ok(ChunkMeta::new(&sha256))
}
diff --git a/src/checksummer.rs b/src/label.rs
index 6d7303b..7ee55d1 100644
--- a/src/checksummer.rs
+++ b/src/label.rs
@@ -1,4 +1,4 @@
-//! Compute checksums of data.
+//! A chunk label.
//!
//! De-duplication of backed up data in Obnam relies on cryptographic
//! checksums. They are implemented in this module. Note that Obnam
@@ -10,7 +10,7 @@ use std::fmt;
/// A checksum of some data.
#[derive(Debug, Clone)]
-pub enum Checksum {
+pub enum Label {
/// An arbitrary, literal string.
Literal(String),
@@ -18,7 +18,7 @@ pub enum Checksum {
Sha256(String),
}
-impl Checksum {
+impl Label {
/// Construct a literal string.
pub fn literal(s: &str) -> Self {
Self::Literal(s.to_string())
@@ -38,7 +38,7 @@ impl Checksum {
}
}
-impl fmt::Display for Checksum {
+impl fmt::Display for Label {
/// Format a checksum for display.
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
diff --git a/src/lib.rs b/src/lib.rs
index a0a53c7..fbbea15 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -9,7 +9,6 @@ pub mod accumulated_time;
pub mod backup_progress;
pub mod backup_reason;
pub mod backup_run;
-pub mod checksummer;
pub mod chunk;
pub mod chunker;
pub mod chunkid;
@@ -29,6 +28,7 @@ pub mod genlist;
pub mod genmeta;
pub mod index;
pub mod indexedstore;
+pub mod label;
pub mod passwords;
pub mod performance;
pub mod policy;
diff --git a/src/server.rs b/src/server.rs
index 31a03fc..6b688d6 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -141,7 +141,7 @@ impl SearchHits {
#[cfg(test)]
mod test_search_hits {
use super::{ChunkMeta, SearchHits};
- use crate::checksummer::Checksum;
+ use crate::label::Label;
#[test]
fn no_search_hits() {
@@ -152,7 +152,7 @@ mod test_search_hits {
#[test]
fn one_search_hit() {
let id = "abc".parse().unwrap();
- let sum = Checksum::sha256_from_str_unchecked("123");
+ let sum = Label::sha256(b"123");
let meta = ChunkMeta::new(&sum);
let mut hits = SearchHits::default();
hits.insert(id, meta);