diff options
author | Alex Klyubin <klyubin@google.com> | 2015-04-01 02:20:40 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-04-01 02:20:40 +0000 |
commit | e0e8aa1ebca8608ac50f20b3ad069bb95a0e5962 (patch) | |
tree | 9ec7090eba50589a60ea00e17c2a75d01ff71053 /keystore/java/android/security/KeyStoreKeyCharacteristics.java | |
parent | 787bacd35a9d53c76f27ba565e5d5d97f86b73fd (diff) | |
parent | c230e1908f6307913e5af644a6594cc0f9f3fb93 (diff) | |
download | frameworks_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.java | 52 |
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); + } + } + } +} |