Fix saving secrets to keystore from vpn settings.
This commit is contained in:
@@ -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);
|
||||||
|
Reference in New Issue
Block a user