commit b2506da00f5f9239fbe6cda1a4046d8b06dbc05f
parent 680871e00e4c811381b1d5f1dbaaae36cfaf0b45
Author: Gavin Peacock <gpeacock@adobe.com>
Date: Tue, 21 Nov 2023 18:34:19 -0800
Remove Blake3 dependency from c2pa-rs (#348)
Remove blake3 from core SDK
update blake3 in make_test_files
Diffstat:
3 files changed, 1 insertion(+), 67 deletions(-)
diff --git a/make_test_images/Cargo.toml b/make_test_images/Cargo.toml
@@ -8,7 +8,7 @@ rust-version = "1.70.0"
[dependencies]
anyhow = "1.0.40"
-blake3 = "1.0.0"
+blake3 = "1.5.0"
c2pa = { path = "../sdk", features = [
"add_thumbnails",
"file_io",
diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml
@@ -62,7 +62,6 @@ async-trait = { version = "0.1.48" }
atree = "0.5.2"
base64 = "0.21.2"
bcder = "0.7.1"
-blake3 = "1.0.0"
bytes = "1.4.0"
byteorder = { version = "1.4.3", default-features = false }
byteordered = "0.6.0"
diff --git a/sdk/src/utils/hash_utils.rs b/sdk/src/utils/hash_utils.rs
@@ -491,71 +491,6 @@ pub fn verify_hash(hash: &str, data: &[u8]) -> bool {
}
}
-// Fast implementation for Blake3 hashing that can handle large assets
-pub fn blake3_from_asset(path: &Path) -> Result<String> {
- let mut data = File::open(path)?;
- data.rewind()?;
- let data_len = data.seek(SeekFrom::End(0))?;
- data.rewind()?;
-
- let mut hasher = blake3::Hasher::new();
-
- let mut chunk_left = data_len;
-
- if cfg!(feature = "no_interleaved_io") {
- loop {
- let mut chunk = vec![0u8; std::cmp::min(chunk_left as usize, MAX_HASH_BUF)];
-
- data.read_exact(&mut chunk)?;
-
- hasher.update(&chunk);
-
- chunk_left -= chunk.len() as u64;
- if chunk_left == 0 {
- break;
- }
- }
- } else {
- let mut chunk = vec![0u8; std::cmp::min(chunk_left as usize, MAX_HASH_BUF)];
- data.read_exact(&mut chunk)?;
-
- loop {
- let (tx, rx) = std::sync::mpsc::channel();
-
- chunk_left -= chunk.len() as u64;
-
- std::thread::spawn(move || {
- hasher.update(&chunk);
- tx.send(hasher).unwrap_or_default();
- });
-
- // are we done
- if chunk_left == 0 {
- hasher = match rx.recv() {
- Ok(hasher) => hasher,
- Err(_) => return Err(Error::ThreadReceiveError),
- };
- break;
- }
-
- // read next chunk while we wait for hash
- let mut next_chunk = vec![0u8; std::cmp::min(chunk_left as usize, MAX_HASH_BUF)];
- data.read_exact(&mut next_chunk)?;
-
- hasher = match rx.recv() {
- Ok(hasher) => hasher,
- Err(_) => return Err(Error::ThreadReceiveError),
- };
-
- chunk = next_chunk;
- }
- }
-
- let hash = blake3::Hasher::finalize(&hasher);
-
- Ok(hash.to_hex().as_str().to_owned())
-}
-
/// Return the hash of data in the same hash format in_hash
pub fn hash_as_source(in_hash: &str, data: &[u8]) -> Option<String> {
match decode(in_hash) {