diff options
Diffstat (limited to 'src/checksummer.rs')
-rw-r--r-- | src/checksummer.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/checksummer.rs b/src/checksummer.rs deleted file mode 100644 index 50bce04..0000000 --- a/src/checksummer.rs +++ /dev/null @@ -1,41 +0,0 @@ -//! Compute checksums of data. -//! -//! De-duplication of backed up data in Obnam relies on cryptographic -//! checksums. They are implemented in this module. Note that Obnam -//! does not aim to make these algorithms configurable, so only a very -//! small number of carefully chosen algorithms are supported here. - -use sha2::{Digest, Sha256}; -use std::fmt; - -/// A checksum of some data. -#[derive(Debug, Clone)] -pub enum Checksum { - /// A SHA256 checksum. - Sha256(String), -} - -impl Checksum { - /// Compute a SHA256 checksum for a block of data. - pub fn sha256(data: &[u8]) -> Self { - let mut hasher = Sha256::new(); - hasher.update(data); - let hash = hasher.finalize(); - Self::Sha256(format!("{:x}", hash)) - } - - /// Create a `Checksum` from a known, previously computed hash. - pub fn sha256_from_str_unchecked(hash: &str) -> Self { - Self::Sha256(hash.to_string()) - } -} - -impl fmt::Display for Checksum { - /// Format a checksum for display. - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let hash = match self { - Self::Sha256(hash) => hash, - }; - write!(f, "{}", hash) - } -} |