Updated to return `INVALID_ARGUMENT` response code instead of
`SYSTEM_ERROR` while loading attest key.
While loading attest-key if it fails to find its blob or cert
then `INVALID_ARGUMENT` error reponse is returned instead of
`SYSTEM_ERROR`.
Bug: 254703846
Test: atest CtsKeystoreTestCases; atest keystore2_client_tests
Change-Id: Ie0d75c3bd99057b4c775e9c8f9dd91385cd6db81
diff --git a/keystore2/src/attestation_key_utils.rs b/keystore2/src/attestation_key_utils.rs
index f53a88c..94f3e4c 100644
--- a/keystore2/src/attestation_key_utils.rs
+++ b/keystore2/src/attestation_key_utils.rs
@@ -26,7 +26,7 @@
AttestationKey::AttestationKey, Certificate::Certificate, KeyParameter::KeyParameter, Tag::Tag,
};
use android_system_keystore2::aidl::android::system::keystore2::{
- Domain::Domain, KeyDescriptor::KeyDescriptor,
+ Domain::Domain, KeyDescriptor::KeyDescriptor, ResponseCode::ResponseCode,
};
use anyhow::{Context, Result};
use keystore2_crypto::parse_subject_from_certificate;
@@ -119,11 +119,11 @@
let (blob, blob_metadata) = key_entry
.take_key_blob_info()
- .ok_or_else(Error::sys)
+ .ok_or(Error::Rc(ResponseCode::INVALID_ARGUMENT))
.context(ks_err!("Successfully loaded key entry, but KM blob was missing"))?;
let cert = key_entry
.take_cert()
- .ok_or_else(Error::sys)
+ .ok_or(Error::Rc(ResponseCode::INVALID_ARGUMENT))
.context(ks_err!("Successfully loaded key entry, but cert was missing"))?;
Ok((key_id_guard, blob, cert, blob_metadata))
}