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))
         }
diff --git a/keystore2/tests/keystore2_client_attest_key_tests.rs b/keystore2/tests/keystore2_client_attest_key_tests.rs
index b97d27f..fc3148c 100644
--- a/keystore2/tests/keystore2_client_attest_key_tests.rs
+++ b/keystore2/tests/keystore2_client_attest_key_tests.rs
@@ -424,7 +424,7 @@
 }
 
 /// Generate a symmetric key. Try to use this symmetric key as attestation key while generating RSA
-/// key. Test should fail to generate a key with response code `SYSTEM_ERROR`.
+/// key. Test should fail to generate a key with response code `INVALID_ARGUMENT`.
 #[test]
 fn keystore2_attest_rsa_key_with_symmetric_key_fails_sys_error() {
     skip_test_if_no_app_attest_key_feature!();
@@ -466,7 +466,7 @@
         Some(&sym_key_metadata.key),
     ));
     assert!(result.is_err());
-    assert_eq!(Error::Rc(ResponseCode::SYSTEM_ERROR), result.unwrap_err());
+    assert_eq!(Error::Rc(ResponseCode::INVALID_ARGUMENT), result.unwrap_err());
 }
 
 /// Generate RSA attestation key and try to use it as attestation key while generating symmetric