Merge "AuthGraph VTS: detect additional errors" into main

This commit is contained in:
David Drysdale
2023-11-22 06:23:38 +00:00
committed by Gerrit Code Review
3 changed files with 15 additions and 5 deletions

View File

@@ -50,6 +50,7 @@ cc_test {
rust_test { rust_test {
name: "VtsAidlAuthGraphRoleTest", name: "VtsAidlAuthGraphRoleTest",
srcs: ["role_test.rs"], srcs: ["role_test.rs"],
require_root: true,
test_suites: [ test_suites: [
"general-tests", "general-tests",
"vts", "vts",

View File

@@ -22,13 +22,18 @@ use authgraph_vts_test as vts;
use android_hardware_security_authgraph::aidl::android::hardware::security::authgraph::{ use android_hardware_security_authgraph::aidl::android::hardware::security::authgraph::{
IAuthGraphKeyExchange::IAuthGraphKeyExchange, IAuthGraphKeyExchange::IAuthGraphKeyExchange,
}; };
use binder::StatusCode;
const AUTH_GRAPH_NONSECURE: &str = const AUTH_GRAPH_NONSECURE: &str =
"android.hardware.security.authgraph.IAuthGraphKeyExchange/nonsecure"; "android.hardware.security.authgraph.IAuthGraphKeyExchange/nonsecure";
/// Retrieve the /nonsecure instance of AuthGraph, which supports both sink and source roles. /// Retrieve the /nonsecure instance of AuthGraph, which supports both sink and source roles.
fn get_nonsecure() -> Option<binder::Strong<dyn IAuthGraphKeyExchange>> { fn get_nonsecure() -> Option<binder::Strong<dyn IAuthGraphKeyExchange>> {
binder::get_interface(AUTH_GRAPH_NONSECURE).ok() match binder::get_interface(AUTH_GRAPH_NONSECURE) {
Ok(ag) => Some(ag),
Err(StatusCode::NAME_NOT_FOUND) => None,
Err(e) => panic!("failed to get AuthGraph/nonsecure: {e:?}"),
}
} }
/// Macro to require availability of a /nonsecure instance of AuthGraph. /// Macro to require availability of a /nonsecure instance of AuthGraph.

View File

@@ -250,9 +250,13 @@ pub fn test_corrupt_key(
&corrupt_key, &corrupt_key,
); );
let err = result.expect_err("expect failure with corrupt signature"); let err = result.expect_err("expect failure with corrupt key");
assert_eq!( assert!(
err, err == binder::Status::new_service_specific_error(Error::INVALID_KE_KEY.0, None)
binder::Status::new_service_specific_error(Error::INVALID_PRIV_KEY_ARC_IN_KEY.0, None) || err
== binder::Status::new_service_specific_error(
Error::INVALID_PRIV_KEY_ARC_IN_KEY.0,
None
)
); );
} }