summaryrefslogtreecommitdiffstats
path: root/keystore
diff options
context:
space:
mode:
authorRobin Lee <rgl@google.com>2015-07-03 16:48:11 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-03 16:48:15 +0000
commita7bdb6c99b7ddb6e17f9c939c138686e0bfdbbc4 (patch)
tree99414df05a8522eea9496e99bdd20a13a9dcee63 /keystore
parent71e3d079d623b93ec8a66afa6a1281896c7cd2c6 (diff)
parent59e3baa8ab08c4da270023540ba15268c87e0d67 (diff)
downloadframeworks_base-a7bdb6c99b7ddb6e17f9c939c138686e0bfdbbc4.zip
frameworks_base-a7bdb6c99b7ddb6e17f9c939c138686e0bfdbbc4.tar.gz
frameworks_base-a7bdb6c99b7ddb6e17f9c939c138686e0bfdbbc4.tar.bz2
Merge "KeyChain: annotate with @WorkerThread" into mnc-dev
Diffstat (limited to 'keystore')
-rw-r--r--keystore/java/android/security/KeyChain.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/keystore/java/android/security/KeyChain.java b/keystore/java/android/security/KeyChain.java
index f482bf0..7de26d6 100644
--- a/keystore/java/android/security/KeyChain.java
+++ b/keystore/java/android/security/KeyChain.java
@@ -17,6 +17,7 @@ package android.security;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.WorkerThread;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.ComponentName;
@@ -351,11 +352,15 @@ public final class KeyChain {
* Returns the {@code PrivateKey} for the requested alias, or null
* if no there is no result.
*
- * @param alias The alias of the desired private key, typically
- * returned via {@link KeyChainAliasCallback#alias}.
+ * <p> This method may block while waiting for a connection to another process, and must never
+ * be called from the main thread.
+ *
+ * @param alias The alias of the desired private key, typically returned via
+ * {@link KeyChainAliasCallback#alias}.
* @throws KeyChainException if the alias was valid but there was some problem accessing it.
+ * @throws IllegalStateException if called from the main thread.
*/
- @Nullable
+ @Nullable @WorkerThread
public static PrivateKey getPrivateKey(@NonNull Context context, @NonNull String alias)
throws KeyChainException, InterruptedException {
if (alias == null) {
@@ -386,11 +391,15 @@ public final class KeyChain {
* Returns the {@code X509Certificate} chain for the requested
* alias, or null if no there is no result.
*
+ * <p> This method may block while waiting for a connection to another process, and must never
+ * be called from the main thread.
+ *
* @param alias The alias of the desired certificate chain, typically
* returned via {@link KeyChainAliasCallback#alias}.
* @throws KeyChainException if the alias was valid but there was some problem accessing it.
+ * @throws IllegalStateException if called from the main thread.
*/
- @Nullable
+ @Nullable @WorkerThread
public static X509Certificate[] getCertificateChain(@NonNull Context context,
@NonNull String alias) throws KeyChainException, InterruptedException {
if (alias == null) {
@@ -505,6 +514,7 @@ public final class KeyChain {
*
* Caller should call unbindService on the result when finished.
*/
+ @WorkerThread
public static KeyChainConnection bind(@NonNull Context context) throws InterruptedException {
return bindAsUser(context, Process.myUserHandle());
}
@@ -512,6 +522,7 @@ public final class KeyChain {
/**
* @hide
*/
+ @WorkerThread
public static KeyChainConnection bindAsUser(@NonNull Context context, UserHandle user)
throws InterruptedException {
if (context == null) {