summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-07-17 10:24:27 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-07-17 10:24:27 -0700
commit6b1b36a832943126d19a21dcadda11cc75c3a9b6 (patch)
treee92293858830afcc8aaf58ea1215217df63d9d5f /src/com
parentf90682f4fb645ff45cbabcc0e7c3c26dc3cce599 (diff)
parent38a44f2445b5c900dd4098837459d1e57bd55907 (diff)
downloadpackages_apps_settings-6b1b36a832943126d19a21dcadda11cc75c3a9b6.zip
packages_apps_settings-6b1b36a832943126d19a21dcadda11cc75c3a9b6.tar.gz
packages_apps_settings-6b1b36a832943126d19a21dcadda11cc75c3a9b6.tar.bz2
Merge change 7687 into donut
* changes: Add UI to handle PKCS12 cert.
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/SecuritySettings.java44
1 files changed, 39 insertions, 5 deletions
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 305fb7e..4947c2b 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -37,6 +37,7 @@ import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.Settings;
+import android.security.CertTool;
import android.security.Keystore;
import android.text.Html;
import android.text.TextUtils;
@@ -618,6 +619,17 @@ public class SecuritySettings extends PreferenceActivity implements
}
mCstorAddCredentialHelper.setName(name);
+
+ if (mCstorAddCredentialHelper.isPkcs12Keystore()) {
+ String password = getText(R.id.cstor_credential_password);
+ if (TextUtils.isEmpty(password)) {
+ showError(R.string.cstor_password_empty_error);
+ return false;
+ }
+
+ mCstorAddCredentialHelper.setPassword(password);
+ }
+
return true;
}
@@ -869,6 +881,9 @@ public class SecuritySettings extends PreferenceActivity implements
mView = View.inflate(SecuritySettings.this,
R.layout.cstor_name_credential_dialog_view, null);
hideError();
+ if (!mCstorAddCredentialHelper.isPkcs12Keystore()) {
+ hide(R.id.cstor_credential_password_container);
+ }
setText(R.id.cstor_credential_name_title,
R.string.cstor_credential_name);
@@ -895,6 +910,7 @@ public class SecuritySettings extends PreferenceActivity implements
private List<String> mNamespaceList;
private String mDescription;
private String mName;
+ private String mPassword;
CstorAddCredentialHelper(Intent intent) {
parse(intent);
@@ -904,6 +920,10 @@ public class SecuritySettings extends PreferenceActivity implements
return mTypeName;
}
+ boolean isPkcs12Keystore() {
+ return CertTool.TITLE_PKCS12_KEYSTORE.equals(mTypeName);
+ }
+
CharSequence getDescription() {
return Html.fromHtml(mDescription);
}
@@ -916,12 +936,26 @@ public class SecuritySettings extends PreferenceActivity implements
return mName;
}
+ void setPassword(String password) {
+ mPassword = password;
+ }
+
+ String getPassword() {
+ return mPassword;
+ }
+
int saveToStorage() {
- Keystore ks = Keystore.getInstance();
- for (int i = 0, count = mItemList.size(); i < count; i++) {
- byte[] blob = mItemList.get(i);
- int ret = ks.put(mNamespaceList.get(i), mName, new String(blob));
- if (ret < 0) return ret;
+ if (isPkcs12Keystore()) {
+ return CertTool.getInstance().addPkcs12Keystore(
+ mItemList.get(0), mPassword, mName);
+ } else {
+ Keystore ks = Keystore.getInstance();
+ for (int i = 0, count = mItemList.size(); i < count; i++) {
+ byte[] blob = mItemList.get(i);
+ int ret = ks.put(mNamespaceList.get(i), mName,
+ new String(blob));
+ if (ret < 0) return ret;
+ }
}
return 0;
}