summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Brian Carlstrom <bdc@google.com> 2011-06-02 17:02:38 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-06-02 17:02:38 -0700
commiteefaf27d55cb51f5d3986ec73b07f80e545338c5 (patch)
treecbfa4a0e1b2dd2e8fce7856835ac1c482526dfbd
parentfb771d1ecce3e001a2268082facdbdf6174283cd (diff)
parente2afc2420d29c2d3d04a05ed5839c12f3b267b23 (diff)
Merge "KeyStore.reset changes"
-rw-r--r--cmds/keystore/keystore.cpp4
-rw-r--r--core/java/com/android/internal/widget/LockPatternUtils.java14
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);
}