pvmfw: refactor: Expose DICE inputs to main()

Refactor the code to give the top-level business logic access to the
DICE inputs to be able to set the hidden input (salt) and make use of
the computed hashes, as it will be required to verify the content of the
instance.img entry.

Note: No functional change intended.

Test: atest MicrodroidHostTests
Change-Id: I111006fb4becc12f5b19480e5b8882754e193102
diff --git a/pvmfw/avb/tests/utils.rs b/pvmfw/avb/tests/utils.rs
index 9942b98..6713846 100644
--- a/pvmfw/avb/tests/utils.rs
+++ b/pvmfw/avb/tests/utils.rs
@@ -102,16 +102,21 @@
     initrd_salt: &[u8],
     expected_debug_level: DebugLevel,
 ) -> Result<()> {
+    let public_key = load_trusted_public_key()?;
     let kernel = load_latest_signed_kernel()?;
-    let verified_boot_data = verify_payload(&kernel, Some(initrd), &load_trusted_public_key()?)
+    let verified_boot_data = verify_payload(&kernel, Some(initrd), &public_key)
         .map_err(|e| anyhow!("Verification failed. Error: {}", e))?;
 
     let footer = extract_avb_footer(&kernel)?;
     let kernel_digest =
         hash(&[&hash(&[b"bootloader"]), &kernel[..usize::try_from(footer.original_image_size)?]]);
     let initrd_digest = Some(hash(&[&hash(&[initrd_salt]), initrd]));
-    let expected_boot_data =
-        VerifiedBootData { debug_level: expected_debug_level, kernel_digest, initrd_digest };
+    let expected_boot_data = VerifiedBootData {
+        debug_level: expected_debug_level,
+        kernel_digest,
+        initrd_digest,
+        public_key: &public_key,
+    };
     assert_eq!(expected_boot_data, verified_boot_data);
 
     Ok(())