diff options
| author | 2021-01-20 23:25:35 +0000 | |
|---|---|---|
| committer | 2021-01-20 23:25:35 +0000 | |
| commit | 758c0c54bf5115e1a9f3b77c2c07d14bbf75ff53 (patch) | |
| tree | deb1015d336b41a7c75d880e083cb090faa0ae2c /keystore/java | |
| parent | df24f2b2d96419c9a1aa0e709ff0583e3dfa8741 (diff) | |
| parent | 396957acad423f43a1e7641527f5c8cec6a27c7d (diff) | |
Merge "Keystore 2.0: Integrate onLockScreenEvent." am: 01460b0bd8 am: 2670006095 am: 396957acad
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1546381
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I801c764ca7c4927ff7ac57e6a9b130e803fa8ebd
Diffstat (limited to 'keystore/java')
| -rw-r--r-- | keystore/java/android/security/Authorization.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/keystore/java/android/security/Authorization.java b/keystore/java/android/security/Authorization.java index 1fde2b5412ed..fcc518c374e3 100644 --- a/keystore/java/android/security/Authorization.java +++ b/keystore/java/android/security/Authorization.java @@ -17,11 +17,13 @@ package android.security; import android.annotation.NonNull; +import android.annotation.Nullable; import android.hardware.security.keymint.HardwareAuthToken; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceSpecificException; import android.security.authorization.IKeystoreAuthorization; +import android.security.authorization.LockScreenEvent; import android.system.keystore2.ResponseCode; import android.util.Log; @@ -75,4 +77,31 @@ public class Authorization { return addAuthToken(AuthTokenUtils.toHardwareAuthToken(authToken)); } + /** + * Informs keystore2 about lock screen event. + * + * @param locked - whether it is a lock (true) or unlock (false) event + * @param syntheticPassword - if it is an unlock event with the password, pass the synthetic + * password provided by the LockSettingService + * + * @return 0 if successful or a {@code ResponseCode}. + */ + public int onLockScreenEvent(@NonNull boolean locked, @NonNull int userId, + @Nullable byte[] syntheticPassword) { + if (!android.security.keystore2.AndroidKeyStoreProvider.isInstalled()) return 0; + try { + if (locked) { + getService().onLockScreenEvent(LockScreenEvent.LOCK, userId, null); + } else { + getService().onLockScreenEvent(LockScreenEvent.UNLOCK, userId, syntheticPassword); + } + return 0; + } catch (RemoteException e) { + Log.w(TAG, "Can not connect to keystore", e); + return SYSTEM_ERROR; + } catch (ServiceSpecificException e) { + return e.errorCode; + } + } + } |