summaryrefslogtreecommitdiffstats
path: root/keystore/java/android/security/KeyStoreKeyCharacteristics.java
diff options
context:
space:
mode:
authorAlex Klyubin <klyubin@google.com>2015-04-01 02:20:40 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-01 02:20:40 +0000
commite0e8aa1ebca8608ac50f20b3ad069bb95a0e5962 (patch)
tree9ec7090eba50589a60ea00e17c2a75d01ff71053 /keystore/java/android/security/KeyStoreKeyCharacteristics.java
parent787bacd35a9d53c76f27ba565e5d5d97f86b73fd (diff)
parentc230e1908f6307913e5af644a6594cc0f9f3fb93 (diff)
downloadframeworks_base-e0e8aa1ebca8608ac50f20b3ad069bb95a0e5962.zip
frameworks_base-e0e8aa1ebca8608ac50f20b3ad069bb95a0e5962.tar.gz
frameworks_base-e0e8aa1ebca8608ac50f20b3ad069bb95a0e5962.tar.bz2
am c230e190: am 9c0f257f: am 19e79e12: Merge "Add SecretKeyFactory backed by AndroidKeyStore."
* commit 'c230e1908f6307913e5af644a6594cc0f9f3fb93': Add SecretKeyFactory backed by AndroidKeyStore.
Diffstat (limited to 'keystore/java/android/security/KeyStoreKeyCharacteristics.java')
-rw-r--r--keystore/java/android/security/KeyStoreKeyCharacteristics.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/keystore/java/android/security/KeyStoreKeyCharacteristics.java b/keystore/java/android/security/KeyStoreKeyCharacteristics.java
new file mode 100644
index 0000000..c06dc3b
--- /dev/null
+++ b/keystore/java/android/security/KeyStoreKeyCharacteristics.java
@@ -0,0 +1,52 @@
+package android.security;
+
+import android.annotation.IntDef;
+import android.security.keymaster.KeymasterDefs;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Characteristics of {@code AndroidKeyStore} keys.
+ *
+ * @hide
+ */
+public abstract class KeyStoreKeyCharacteristics {
+ private KeyStoreKeyCharacteristics() {}
+
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({Origin.GENERATED_INSIDE_TEE, Origin.GENERATED_OUTSIDE_OF_TEE, Origin.IMPORTED})
+ public @interface OriginEnum {}
+
+ /**
+ * Origin of the key.
+ */
+ public static abstract class Origin {
+ private Origin() {}
+
+ /** Key was generated inside a TEE. */
+ public static final int GENERATED_INSIDE_TEE = 1;
+
+ /** Key was generated outside of a TEE. */
+ public static final int GENERATED_OUTSIDE_OF_TEE = 2;
+
+ /** Key was imported. */
+ public static final int IMPORTED = 0;
+
+ /**
+ * @hide
+ */
+ public static @OriginEnum int fromKeymaster(int origin) {
+ switch (origin) {
+ case KeymasterDefs.KM_ORIGIN_HARDWARE:
+ return GENERATED_INSIDE_TEE;
+ case KeymasterDefs.KM_ORIGIN_SOFTWARE:
+ return GENERATED_OUTSIDE_OF_TEE;
+ case KeymasterDefs.KM_ORIGIN_IMPORTED:
+ return IMPORTED;
+ default:
+ throw new IllegalArgumentException("Unknown origin: " + origin);
+ }
+ }
+ }
+}