[apkverify] Add API to compute v4 apk_digest
Bug: 247689066
Test: libapkverify.integration_test avmdtool_tests libidsig.test
Change-Id: Ic8f39641fa41b6202aea43b6c2ce6a9254198212
diff --git a/libs/apkverify/tests/apkverify_test.rs b/libs/apkverify/tests/apkverify_test.rs
index e17ba5c..047538c 100644
--- a/libs/apkverify/tests/apkverify_test.rs
+++ b/libs/apkverify/tests/apkverify_test.rs
@@ -15,7 +15,7 @@
*/
use apkverify::{
- get_public_key_der, pick_v4_apk_digest, testing::assert_contains, verify, SignatureAlgorithmID,
+ get_apk_digest, get_public_key_der, testing::assert_contains, verify, SignatureAlgorithmID,
};
use std::{fs, matches, path::Path};
@@ -221,16 +221,22 @@
/// Validates that the following apk_digest are equal:
/// * apk_digest directly extracted from apk without computation
+/// * computed apk_digest
/// * expected apk digest from the corresponding .apk_digest file
fn validate_apk_digest<P: AsRef<Path>>(apk_path: P, expected_algorithm_id: SignatureAlgorithmID) {
let apk = fs::File::open(&apk_path).expect("Unabled to open apk file");
- let (signature_algorithm_id, digest_from_apk) =
- pick_v4_apk_digest(apk).expect("Error when extracting apk digest.");
+ let (verified_algorithm_id, verified_digest) = get_apk_digest(&apk, /*verify=*/ true)
+ .expect("Error when extracting apk digest with verification.");
- assert_eq!(expected_algorithm_id, signature_algorithm_id);
+ assert_eq!(expected_algorithm_id, verified_algorithm_id);
let expected_digest_path = format!("{}.apk_digest", apk_path.as_ref().to_str().unwrap());
- assert_bytes_eq_to_data_in_file(&digest_from_apk, expected_digest_path);
+ assert_bytes_eq_to_data_in_file(&verified_digest, expected_digest_path);
+
+ let (unverified_algorithm_id, unverified_digest) = get_apk_digest(&apk, /*verify=*/ false)
+ .expect("Error when extracting apk digest without verification.");
+ assert_eq!(expected_algorithm_id, unverified_algorithm_id);
+ assert_eq!(verified_digest, unverified_digest);
}
fn assert_bytes_eq_to_data_in_file<P: AsRef<Path> + std::fmt::Display>(