summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shaquille Johnson <ssjohnson@google.com> 2023-11-28 15:13:59 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2023-11-28 15:13:59 +0000
commita7f6cb180da0f8b494f2c1d2c90b26b05ac924f6 (patch)
treeb7b852e32d892ed07765d58f074c5a6a08b489cc
parent55c8a818ecd3987bd1ccef1a8bc6066ae58a7a13 (diff)
parent40a8d1f7ef6d0f04f5d8c4a57620282513bd2b6b (diff)
Merge "Update exception thrown for keystore" into main
-rw-r--r--keystore/java/android/security/KeyStore2.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/keystore/java/android/security/KeyStore2.java b/keystore/java/android/security/KeyStore2.java
index 5e16bcee1a0e..dd703f5eefb9 100644
--- a/keystore/java/android/security/KeyStore2.java
+++ b/keystore/java/android/security/KeyStore2.java
@@ -33,7 +33,6 @@ import android.system.keystore2.ResponseCode;
import android.util.Log;
import java.util.Calendar;
-import java.util.Objects;
/**
* @hide This should not be made public in its present form because it
@@ -139,13 +138,25 @@ public class KeyStore2 {
return new KeyStore2();
}
+ /**
+ * Gets the {@link IKeystoreService} that should be started in early_hal in Android.
+ *
+ * @throws IllegalStateException if the KeystoreService is not available or has not
+ * been initialized when called. This is a state that should not happen and indicates
+ * and error somewhere in the stack or with the calling processes access permissions.
+ */
@NonNull private synchronized IKeystoreService getService(boolean retryLookup) {
if (mBinder == null || retryLookup) {
mBinder = IKeystoreService.Stub.asInterface(ServiceManager
- .getService(KEYSTORE2_SERVICE_NAME));
- Binder.allowBlocking(mBinder.asBinder());
+ .getService(KEYSTORE2_SERVICE_NAME));
+ }
+ if (mBinder == null) {
+ throw new IllegalStateException(
+ "Could not connect to Keystore service. Keystore may have crashed or not been"
+ + " initialized");
}
- return Objects.requireNonNull(mBinder);
+ Binder.allowBlocking(mBinder.asBinder());
+ return mBinder;
}
void delete(KeyDescriptor descriptor) throws KeyStoreException {