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(),
)
}
diff --git a/pvmfw/avb/tests/utils.rs b/pvmfw/avb/tests/utils.rs
index 79fdfff..86d2398 100644
--- a/pvmfw/avb/tests/utils.rs
+++ b/pvmfw/avb/tests/utils.rs
@@ -22,7 +22,7 @@
AvbVBMetaImageHeader,
};
use openssl::sha;
-use pvmfw_avb::{verify_payload, AvbSlotVerifyError, DebugLevel, Digest, VerifiedBootData};
+use pvmfw_avb::{verify_payload, DebugLevel, Digest, PvmfwVerifyError, VerifiedBootData};
use std::{
fs,
mem::{size_of, transmute, MaybeUninit},
@@ -39,7 +39,7 @@
kernel: &[u8],
initrd: &[u8],
trusted_public_key: &[u8],
- expected_error: AvbSlotVerifyError,
+ expected_error: PvmfwVerifyError,
) -> Result<()> {
assert_payload_verification_fails(kernel, Some(initrd), trusted_public_key, expected_error)
}
@@ -48,7 +48,7 @@
kernel: &[u8],
initrd: Option<&[u8]>,
trusted_public_key: &[u8],
- expected_error: AvbSlotVerifyError,
+ expected_error: PvmfwVerifyError,
) -> Result<()> {
assert_eq!(expected_error, verify_payload(kernel, initrd, trusted_public_key).unwrap_err());
Ok(())