Fix saving secrets to keystore from vpn settings.

This commit is contained in:
Hung-ying Tyan
2009-07-08 16:39:48 +08:00
parent 2368d0455c
commit 386668b792

View File

@@ -458,7 +458,9 @@ public class VpnSettings extends PreferenceActivity implements
private void addProfile(VpnProfile p) throws IOException { private void addProfile(VpnProfile p) throws IOException {
setProfileId(p); setProfileId(p);
processSecrets(p);
saveProfileToStorage(p); saveProfileToStorage(p);
mVpnProfileList.add(p); mVpnProfileList.add(p);
addPreferenceFor(p); addPreferenceFor(p);
disableProfilePreferencesIfOneActive(); disableProfilePreferencesIfOneActive();
@@ -801,22 +803,27 @@ public class VpnSettings extends PreferenceActivity implements
case L2TP_IPSEC_PSK: case L2TP_IPSEC_PSK:
L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p; L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p;
String keyName = KEY_PREFIX_IPSEC_PSK + p.getId(); String keyName = KEY_PREFIX_IPSEC_PSK + p.getId();
String keyNameForDaemon = NAMESPACE_VPN + "_" + keyName;
String presharedKey = pskProfile.getPresharedKey(); String presharedKey = pskProfile.getPresharedKey();
if (!presharedKey.equals(keyName)) { if (!presharedKey.equals(keyNameForDaemon)) {
ks.put(NAMESPACE_VPN, keyName, presharedKey); int ret = ks.put(NAMESPACE_VPN, keyName, presharedKey);
pskProfile.setPresharedKey(NAMESPACE_VPN + "_" + keyName); if (ret < 0) Log.e(TAG, "keystore write failed: key=" + keyName);
pskProfile.setPresharedKey(keyNameForDaemon);
} }
// pass through // pass through
case L2TP: case L2TP:
L2tpProfile l2tpProfile = (L2tpProfile) p; L2tpProfile l2tpProfile = (L2tpProfile) p;
keyName = KEY_PREFIX_L2TP_SECRET + p.getId(); keyName = KEY_PREFIX_L2TP_SECRET + p.getId();
String secret = l2tpProfile.getSecretString();
if (l2tpProfile.isSecretEnabled()) { if (l2tpProfile.isSecretEnabled()) {
if (!secret.equals(keyName)) { keyNameForDaemon = NAMESPACE_VPN + "_" + keyName;
ks.put(NAMESPACE_VPN, keyName, secret); String secret = l2tpProfile.getSecretString();
l2tpProfile.setSecretString( if (!secret.equals(keyNameForDaemon)) {
NAMESPACE_VPN + "_" + keyName); int ret = ks.put(NAMESPACE_VPN, keyName, secret);
if (ret < 0) {
Log.e(TAG, "keystore write failed: key=" + keyName);
}
l2tpProfile.setSecretString(keyNameForDaemon);
} }
} else { } else {
ks.remove(NAMESPACE_VPN, keyName); ks.remove(NAMESPACE_VPN, keyName);