avb: move error module to libavb

The libavb Rust wrappers are moving to //external/avb to make them more
widely available and keep them closer to the C source.

To keep CLs manageable, this is being done in smaller chunks. This first
CL just moves the error module over.

A few minor changes were necessary to split out some pvmfw-specific
error conditions from the generic libavb errors (e.g. requirements on
the shape of the vbmeta image).

Bug: b/290110273
Test: atest results unchanged from pre-patch
Change-Id: Iacef297bfb72e560890971e9e158c55f46cf0583
diff --git a/pvmfw/avb/tests/api_test.rs b/pvmfw/avb/tests/api_test.rs
index 2f45d77..e7e4dcc 100644
--- a/pvmfw/avb/tests/api_test.rs
+++ b/pvmfw/avb/tests/api_test.rs
@@ -18,9 +18,7 @@
 
 use anyhow::{anyhow, Result};
 use avb_bindgen::{AvbFooter, AvbVBMetaImageHeader};
-use pvmfw_avb::{
-    verify_payload, AvbIOError, AvbSlotVerifyError, Capability, DebugLevel, VerifiedBootData,
-};
+use pvmfw_avb::{verify_payload, Capability, DebugLevel, PvmfwVerifyError, VerifiedBootData};
 use std::{fs, mem::size_of, ptr};
 use utils::*;
 
@@ -86,7 +84,7 @@
         &fs::read(TEST_IMG_WITH_NON_INITRD_HASHDESC_PATH)?,
         /*initrd=*/ None,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidDescriptors(AvbIOError::NoSuchPartition),
+        PvmfwVerifyError::InvalidDescriptors(avb::IoError::NoSuchPartition),
     )
 }
 
@@ -96,7 +94,7 @@
         &fs::read(TEST_IMG_WITH_INITRD_AND_NON_INITRD_DESC_PATH)?,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidDescriptors(AvbIOError::NoSuchPartition),
+        PvmfwVerifyError::InvalidDescriptors(avb::IoError::NoSuchPartition),
     )
 }
 
@@ -129,7 +127,7 @@
         &fs::read(TEST_IMG_WITH_UNKNOWN_VM_TYPE_PROP_PATH)?,
         /*initrd=*/ None,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::UnknownVbmetaProperty,
+        PvmfwVerifyError::UnknownVbmetaProperty,
     )
 }
 
@@ -139,7 +137,7 @@
         &fs::read(TEST_IMG_WITH_MULTIPLE_PROPS_PATH)?,
         /*initrd=*/ None,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidDescriptors(AvbIOError::Io),
+        PvmfwVerifyError::InvalidDescriptors(avb::IoError::Io),
     )
 }
 
@@ -149,7 +147,7 @@
         &fs::read(TEST_IMG_WITH_DUPLICATED_CAP_PATH)?,
         /*initrd=*/ None,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidMetadata,
+        avb::SlotVerifyError::InvalidMetadata.into(),
     )
 }
 
@@ -159,7 +157,7 @@
         &fs::read(TEST_IMG_WITH_PROP_DESC_PATH)?,
         /*initrd=*/ None,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::UnknownVbmetaProperty,
+        PvmfwVerifyError::UnknownVbmetaProperty,
     )
 }
 
@@ -169,7 +167,7 @@
         &load_latest_signed_kernel()?,
         /*initrd=*/ None,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidMetadata,
+        avb::SlotVerifyError::InvalidMetadata.into(),
     )
 }
 
@@ -179,7 +177,7 @@
         &load_latest_signed_kernel()?,
         &load_latest_initrd_normal()?,
         /*trusted_public_key=*/ &[0u8; 0],
-        AvbSlotVerifyError::PublicKeyRejected,
+        avb::SlotVerifyError::PublicKeyRejected.into(),
     )
 }
 
@@ -189,7 +187,7 @@
         &load_latest_signed_kernel()?,
         &load_latest_initrd_normal()?,
         /*trusted_public_key=*/ &[0u8; 512],
-        AvbSlotVerifyError::PublicKeyRejected,
+        avb::SlotVerifyError::PublicKeyRejected.into(),
     )
 }
 
@@ -199,7 +197,7 @@
         &load_latest_signed_kernel()?,
         &load_latest_initrd_normal()?,
         &fs::read(PUBLIC_KEY_RSA2048_PATH)?,
-        AvbSlotVerifyError::PublicKeyRejected,
+        avb::SlotVerifyError::PublicKeyRejected.into(),
     )
 }
 
@@ -209,7 +207,7 @@
         &load_latest_signed_kernel()?,
         /*initrd=*/ &fs::read(UNSIGNED_TEST_IMG_PATH)?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::Verification,
+        avb::SlotVerifyError::Verification.into(),
     )
 }
 
@@ -219,7 +217,7 @@
         &fs::read(UNSIGNED_TEST_IMG_PATH)?,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::Io,
+        avb::SlotVerifyError::Io.into(),
     )
 }
 
@@ -232,7 +230,7 @@
         &kernel,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::Verification,
+        avb::SlotVerifyError::Verification.into(),
     )
 }
 
@@ -270,7 +268,7 @@
             &kernel,
             &load_latest_initrd_normal()?,
             &load_trusted_public_key()?,
-            AvbSlotVerifyError::Io,
+            avb::SlotVerifyError::Io.into(),
         )?;
     }
     Ok(())
@@ -286,7 +284,7 @@
         &kernel,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidMetadata,
+        avb::SlotVerifyError::InvalidMetadata.into(),
     )
 }
 
@@ -299,7 +297,7 @@
         &load_latest_signed_kernel()?,
         &initrd,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::Verification,
+        avb::SlotVerifyError::Verification.into(),
     )
 }
 
@@ -315,7 +313,7 @@
         &kernel,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::InvalidMetadata,
+        avb::SlotVerifyError::InvalidMetadata.into(),
     )
 }
 
@@ -338,13 +336,13 @@
         &kernel,
         &load_latest_initrd_normal()?,
         &empty_public_key,
-        AvbSlotVerifyError::Verification,
+        avb::SlotVerifyError::Verification.into(),
     )?;
     assert_payload_verification_with_initrd_fails(
         &kernel,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::Verification,
+        avb::SlotVerifyError::Verification.into(),
     )
 }
 
@@ -382,6 +380,6 @@
         &kernel,
         &load_latest_initrd_normal()?,
         &load_trusted_public_key()?,
-        AvbSlotVerifyError::Verification,
+        avb::SlotVerifyError::Verification.into(),
     )
 }