diff options
| author | Alex Klyubin <klyubin@google.com> | 2015-03-31 19:50:13 -0700 |
|---|---|---|
| committer | Alex Klyubin <klyubin@google.com> | 2015-03-31 19:50:13 -0700 |
| commit | c8e557470fc94733c9340c4c67ee69c225bbaa70 (patch) | |
| tree | 42658c56aa30ae20ec8a828745008f74587eb991 /keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java | |
| parent | b7a34e4955beae2cee81a27e7c240316078bbf2f (diff) | |
| download | frameworks_base-c8e557470fc94733c9340c4c67ee69c225bbaa70.zip frameworks_base-c8e557470fc94733c9340c4c67ee69c225bbaa70.tar.gz frameworks_base-c8e557470fc94733c9340c4c67ee69c225bbaa70.tar.bz2 | |
Hook in user authenticators and their exceptions.
Bug: 18088752
Change-Id: I2835dbe51d09587a3081597c6aaf536aa1427e24
Diffstat (limited to 'keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java')
| -rw-r--r-- | keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java b/keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java index 8921ba1..88255a8 100644 --- a/keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java +++ b/keystore/java/android/security/KeyStoreSecretKeyFactorySpi.java @@ -22,7 +22,6 @@ import android.security.keymaster.KeymasterDefs; import java.security.InvalidKeyException; import java.security.spec.InvalidKeySpecException; import java.security.spec.KeySpec; -import java.util.Collections; import java.util.Set; import javax.crypto.SecretKey; @@ -113,13 +112,16 @@ public class KeyStoreSecretKeyFactorySpi extends SecretKeyFactorySpi { throw new InvalidKeySpecException("Unsupported key characteristic", e); } - // TODO: Read user authentication IDs once the Keymaster API has stabilized - Set<Integer> userAuthenticators = Collections.emptySet(); - Set<Integer> teeBackedUserAuthenticators = Collections.emptySet(); -// Set<Integer> userAuthenticators = new HashSet<Integer>( -// getInts(keyCharacteristics, KeymasterDefs.KM_TAG_USER_AUTH_ID)); -// Set<Integer> teeBackedUserAuthenticators = new HashSet<Integer>( -// keyCharacteristics.hwEnforced.getInts(KeymasterDefs.KM_TAG_USER_AUTH_ID)); + int swEnforcedUserAuthenticatorIds = + keyCharacteristics.swEnforced.getInt(KeymasterDefs.KM_TAG_USER_AUTH_TYPE, 0); + int hwEnforcedUserAuthenticatorIds = + keyCharacteristics.hwEnforced.getInt(KeymasterDefs.KM_TAG_USER_AUTH_TYPE, 0); + int userAuthenticatorIds = swEnforcedUserAuthenticatorIds | hwEnforcedUserAuthenticatorIds; + Set<Integer> userAuthenticators = + KeyStoreKeyConstraints.UserAuthenticator.allFromKeymaster(userAuthenticatorIds); + Set<Integer> teeBackedUserAuthenticators = + KeyStoreKeyConstraints.UserAuthenticator.allFromKeymaster( + hwEnforcedUserAuthenticatorIds); return new KeyStoreKeySpec(entryAlias, origin, |
