summaryrefslogtreecommitdiffstats
path: root/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
diff options
context:
space:
mode:
authorAndres Morales <anmorales@google.com>2015-05-14 22:42:26 -0700
committerAndres Morales <anmorales@google.com>2015-05-26 19:48:51 -0700
commit2397427cb1a0bad8a42e6a342dcf29b31e40a234 (patch)
tree08695c000f77519a3698bb25044023973d0ce6f8 /packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
parentaba3ecb976cacd7c92fe8f8afae20d112781d68e (diff)
downloadframeworks_base-2397427cb1a0bad8a42e6a342dcf29b31e40a234.zip
frameworks_base-2397427cb1a0bad8a42e6a342dcf29b31e40a234.tar.gz
frameworks_base-2397427cb1a0bad8a42e6a342dcf29b31e40a234.tar.bz2
[LockSettings] migrate password attempt throttling to hardware
leverage root protected, cryptographically secured hardware if available Bug: 21118563 Change-Id: Ifa804c5a0728bfd14466eb2a84051bace6d33d57
Diffstat (limited to 'packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java')
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java28
1 files changed, 8 insertions, 20 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
index 4d89a8d..d17b25a 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -176,8 +176,8 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
dialog.show();
}
- private void showTimeoutDialog() {
- int timeoutInSeconds = (int) LockPatternUtils.FAILED_ATTEMPT_TIMEOUT_MS / 1000;
+ private void showTimeoutDialog(int timeoutMs) {
+ int timeoutInSeconds = (int) timeoutMs / 1000;
int messageId = 0;
switch (mSecurityModel.getSecurityMode()) {
@@ -244,16 +244,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
showDialog(null, message);
}
- private void showAlmostAtAccountLoginDialog() {
- final int timeoutInSeconds = (int) LockPatternUtils.FAILED_ATTEMPT_TIMEOUT_MS / 1000;
- final int count = LockPatternUtils.FAILED_ATTEMPTS_BEFORE_RESET
- - LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT;
- String message = mContext.getString(R.string.kg_failed_attempts_almost_at_login,
- count, LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT, timeoutInSeconds);
- showDialog(null, message);
- }
-
- private void reportFailedUnlockAttempt() {
+ private void reportFailedUnlockAttempt(int timeoutMs) {
final KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext);
final int failedAttempts = monitor.getFailedUnlockAttempts() + 1; // +1 for this time
@@ -290,14 +281,11 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
Slog.i(TAG, "Too many unlock attempts; user " + expiringUser + " will be wiped!");
showWipeDialog(failedAttempts, userType);
}
- } else {
- showTimeout =
- (failedAttempts % LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) == 0;
}
monitor.reportFailedUnlockAttempt();
mLockPatternUtils.reportFailedPasswordAttempt(KeyguardUpdateMonitor.getCurrentUser());
- if (showTimeout) {
- showTimeoutDialog();
+ if (timeoutMs > 0) {
+ showTimeoutDialog(timeoutMs);
}
}
@@ -425,14 +413,14 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
return mIsVerifyUnlockOnly;
}
- public void reportUnlockAttempt(boolean success) {
+ public void reportUnlockAttempt(boolean success, int timeoutMs) {
KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext);
if (success) {
monitor.clearFailedUnlockAttempts();
mLockPatternUtils.reportSuccessfulPasswordAttempt(
KeyguardUpdateMonitor.getCurrentUser());
} else {
- KeyguardSecurityContainer.this.reportFailedUnlockAttempt();
+ KeyguardSecurityContainer.this.reportFailedUnlockAttempt(timeoutMs);
}
}
@@ -448,7 +436,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
@Override
public void userActivity() { }
@Override
- public void reportUnlockAttempt(boolean success) { }
+ public void reportUnlockAttempt(boolean success, int timeoutMs) { }
@Override
public boolean isVerifyUnlockOnly() { return false; }
@Override