2525use std::collections::HashMap;
2626use std::path::{Path, PathBuf};
2727
28- use sha1::Digest as _;
29-
3028use crate::crawlers::gradle_cache;
3129use crate::hash::git_sha256::compute_git_sha256_from_bytes;
3230use crate::manifest::schema::PatchFileInfo;
@@ -36,6 +34,7 @@ use crate::patch::apply::{
3634};
3735use crate::patch::rollback::{RollbackResult, VerifyRollbackResult, VerifyRollbackStatus};
3836use crate::patch::sidecars::{self, maven as maven_sidecars};
37+ use crate::utils::digest::{sha1_hex_of, sha256_hex_of};
3938use crate::utils::purl::{parse_maven_purl, purl_qualifier};
4039use crate::vendor::VendorServiceConfig;
4140
@@ -270,7 +269,7 @@ pub fn derived_copies_in(
270269 // reader fails fast on a FIFO or device instead of wedging in open(2).
271270 let current = crate::utils::fs::read_regular_to_bytes_sync(&jar)
272271 .ok()
273- .map(|b| sha1_hex (&b));
272+ .map(|b| sha1_hex_of (&b));
274273 let written = std::fs::metadata(&jar).and_then(|m| m.modified()).ok();
275274 let unverified = found
276275 .unknown
@@ -279,7 +278,7 @@ pub fn derived_copies_in(
279278 let Ok(copy) = crate::utils::fs::read_regular_to_bytes_sync(p) else {
280279 return true;
281280 };
282- if Some(sha1_hex (©)) == current {
281+ if Some(sha1_hex_of (©)) == current {
283282 return false;
284283 }
285284 let made = std::fs::metadata(p).and_then(|m| m.modified()).ok();
@@ -352,20 +351,11 @@ fn unpatched_members(
352351 Ok(members)
353352}
354353
355- fn sha256_hex(bytes: &[u8]) -> String {
356- use sha2::Digest as _;
357- hex::encode(sha2::Sha256::digest(bytes))
358- }
359-
360- fn sha1_hex(bytes: &[u8]) -> String {
361- hex::encode(sha1::Sha1::digest(bytes))
362- }
363-
364354/// `<socket_dir>/jvm-originals/<sha256>.jar`.
365355pub fn backup_path(socket_dir: &Path, original: &[u8]) -> PathBuf {
366356 socket_dir
367357 .join(ORIGINALS_DIR)
368- .join(format!("{}.jar", sha256_hex (original)))
358+ .join(format!("{}.jar", sha256_hex_of (original)))
369359}
370360
371361/// Keep `original` under [`ORIGINALS_DIR`] (content-addressed: an existing
@@ -625,7 +615,7 @@ async fn find_backup(restore: &JarRestore<'_>, dir: &Path, current: &[u8]) -> Op
625615 continue;
626616 };
627617 if let Some(hash) = &gradle_hash {
628- if !gradle_cache::hash_eq(hash, &sha1_hex (&bytes)) {
618+ if !gradle_cache::hash_eq(hash, &sha1_hex_of (&bytes)) {
629619 continue;
630620 }
631621 }
@@ -663,7 +653,7 @@ async fn upstream_for_gradle_copy(purl: &str, jar_leaf: &str, dir: &Path) -> Opt
663653 )
664654 .await
665655 .ok()?;
666- gradle_cache::hash_eq(hash, &sha1_hex (&bytes)).then_some(bytes)
656+ gradle_cache::hash_eq(hash, &sha1_hex_of (&bytes)).then_some(bytes)
667657}
668658
669659fn rollback_result(purl: &str, dir: &Path) -> RollbackResult {
@@ -1066,7 +1056,7 @@ mod tests {
10661056 std::fs::create_dir_all(©).unwrap();
10671057 let original = pristine_jar();
10681058 std::fs::write(copy.join("lib-1.0.jar"), &original).unwrap();
1069- let sha1_text = format!("{}\n", sha1_hex (&original));
1059+ let sha1_text = format!("{}\n", sha1_hex_of (&original));
10701060 std::fs::write(copy.join("lib-1.0.jar.sha1"), &sha1_text).unwrap();
10711061
10721062 let files = record();
@@ -1082,7 +1072,7 @@ mod tests {
10821072 );
10831073 assert_eq!(
10841074 std::fs::read_to_string(copy.join("lib-1.0.jar.sha1")).unwrap(),
1085- format!("{}\n", sha1_hex (&service))
1075+ format!("{}\n", sha1_hex_of (&service))
10861076 );
10871077
10881078 let restore = JarRestore {
@@ -1123,7 +1113,7 @@ mod tests {
11231113 let version = d
11241114 .path()
11251115 .join(".gradle/caches/modules-2/files-2.1/com.example/lib/1.0");
1126- let hash_dir = version.join(sha1_hex (&original));
1116+ let hash_dir = version.join(sha1_hex_of (&original));
11271117 std::fs::create_dir_all(&hash_dir).unwrap();
11281118 std::fs::write(hash_dir.join("lib-1.0.jar"), patched_jar()).unwrap();
11291119
0 commit comments