summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ConfirmLockPattern.java
diff options
context:
space:
mode:
authorAndres Morales <anmorales@google.com>2015-04-12 15:38:25 -0700
committerAndres Morales <anmorales@google.com>2015-04-14 15:32:07 -0700
commit6609b0c22ae89a24d1b07dc3c4143452616d4450 (patch)
tree876a19ee47e1e71e91738117f91f04b7d169315a /src/com/android/settings/ConfirmLockPattern.java
parentc1235be6f00520ee18b76d5619a40ea1a99087bb (diff)
downloadpackages_apps_Settings-6609b0c22ae89a24d1b07dc3c4143452616d4450.zip
packages_apps_Settings-6609b0c22ae89a24d1b07dc3c4143452616d4450.tar.gz
packages_apps_Settings-6609b0c22ae89a24d1b07dc3c4143452616d4450.tar.bz2
pipe auth token through confirm and set password
ConfirmDeviceCredentialsActivity and ChooseLockGeneric now understand CLSH.EXTRA_KEY_HAS_CHALLENGE and CLSH.EXTRA_KEY_CHALLENGE in their launching intents. If present, they return a hw_auth_token_t verifying the challenge passed in as a field in keyed by CLSH.EXTRA_KEY_CHALLENGE_TOKEN in their result intents. Change-Id: I0b4e02b6a798a9e57d02522880a180dffadfcde1
Diffstat (limited to 'src/com/android/settings/ConfirmLockPattern.java')
-rw-r--r--src/com/android/settings/ConfirmLockPattern.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java
index 8c4fabc..9db1719 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/ConfirmLockPattern.java
@@ -273,8 +273,35 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
}
public void onPatternDetected(List<LockPatternView.Cell> pattern) {
- if (mLockPatternUtils.checkPattern(pattern)) {
+ final boolean verifyChallenge = getActivity().getIntent().getBooleanExtra(
+ ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
+ boolean matched = false;
+ Intent intent = new Intent();
+ if (verifyChallenge) {
+ if (getActivity() instanceof ConfirmLockPattern.InternalActivity) {
+ long challenge = getActivity().getIntent().getLongExtra(
+ ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0);
+ byte[] token = mLockPatternUtils.verifyPattern(pattern, challenge);
+ if (token != null) {
+ matched = true;
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
+ }
+ }
+ } else if (mLockPatternUtils.checkPattern(pattern)) {
+ matched = true;
+ if (getActivity() instanceof ConfirmLockPattern.InternalActivity) {
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_TYPE,
+ StorageManager.CRYPT_TYPE_PATTERN);
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD,
+ LockPatternUtils.patternToString(pattern));
+ }
+
+ }
+
+ if (matched) {
authenticationSucceeded(LockPatternUtils.patternToString(pattern));
+ getActivity().setResult(Activity.RESULT_OK, intent);
+ getActivity().finish();
} else {
if (pattern.size() >= LockPatternUtils.MIN_PATTERN_REGISTER_FAIL &&
++mNumWrongConfirmAttempts