diff options
| author | 2011-06-02 17:02:38 -0700 | |
|---|---|---|
| committer | 2011-06-02 17:02:38 -0700 | |
| commit | eefaf27d55cb51f5d3986ec73b07f80e545338c5 (patch) | |
| tree | cbfa4a0e1b2dd2e8fce7856835ac1c482526dfbd | |
| parent | fb771d1ecce3e001a2268082facdbdf6174283cd (diff) | |
| parent | e2afc2420d29c2d3d04a05ed5839c12f3b267b23 (diff) | |
Merge "KeyStore.reset changes"
| -rw-r--r-- | cmds/keystore/keystore.cpp | 4 | ||||
| -rw-r--r-- | core/java/com/android/internal/widget/LockPatternUtils.java | 14 |
2 files changed, 13 insertions, 5 deletions
diff --git a/cmds/keystore/keystore.cpp b/cmds/keystore/keystore.cpp index 31db9fdc1c8f..b48be6ef3885 100644 --- a/cmds/keystore/keystore.cpp +++ b/cmds/keystore/keystore.cpp @@ -392,9 +392,7 @@ public: return false; } while ((file = readdir(dir)) != NULL) { - if (isKeyFile(file->d_name)) { - unlink(file->d_name); - } + unlink(file->d_name); } closedir(dir); return true; diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index b3666cbaad6d..dfba4865ba2f 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -397,13 +397,17 @@ public class LockPatternUtils { } raf.close(); DevicePolicyManager dpm = getDevicePolicyManager(); + KeyStore keyStore = KeyStore.getInstance(); if (pattern != null) { - KeyStore.getInstance().password(patternToString(pattern)); + keyStore.password(patternToString(pattern)); setBoolean(PATTERN_EVER_CHOSEN_KEY, true); setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING); dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING, pattern .size(), 0, 0, 0, 0, 0, 0); } else { + if (keyStore.isEmpty()) { + keyStore.reset(); + } dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, 0, 0, 0, 0, 0, 0, 0); } @@ -486,12 +490,13 @@ public class LockPatternUtils { } raf.close(); DevicePolicyManager dpm = getDevicePolicyManager(); + KeyStore keyStore = KeyStore.getInstance(); if (password != null) { // Update the encryption password. updateEncryptionPassword(password); // Update the keystore password - KeyStore.getInstance().password(password); + keyStore.password(password); int computedQuality = computePasswordQuality(password); setLong(PASSWORD_TYPE_KEY, Math.max(quality, computedQuality)); @@ -545,6 +550,11 @@ public class LockPatternUtils { } setString(PASSWORD_HISTORY_KEY, passwordHistory); } else { + // Conditionally reset the keystore if empty. If + // non-empty, we are just switching key guard type + if (keyStore.isEmpty()) { + keyStore.reset(); + } dpm.setActivePasswordState( DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, 0, 0, 0, 0, 0, 0, 0); } |