Due to compatiblity switch from SHA512 to SHA256
This commit is contained in:
@@ -29,7 +29,6 @@ import org.sufficientlysecure.keychain.Constants.Pref;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Vector;
|
||||
|
||||
@@ -94,7 +93,7 @@ public class Preferences {
|
||||
|
||||
public int getDefaultHashAlgorithm() {
|
||||
return mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM,
|
||||
HashAlgorithmTags.SHA512);
|
||||
HashAlgorithmTags.SHA256);
|
||||
}
|
||||
|
||||
public void setDefaultHashAlgorithm(int value) {
|
||||
@@ -237,43 +236,63 @@ public class Preferences {
|
||||
}
|
||||
|
||||
public void updatePreferences() {
|
||||
// migrate keyserver to hkps
|
||||
if (mSharedPreferences.getInt(Constants.Pref.KEY_SERVERS_DEFAULT_VERSION, 0) !=
|
||||
Constants.Defaults.KEY_SERVERS_VERSION) {
|
||||
String[] serversArray = getKeyServers();
|
||||
ArrayList<String> servers = new ArrayList<String>(Arrays.asList(serversArray));
|
||||
ListIterator<String> it = servers.listIterator();
|
||||
while (it.hasNext()) {
|
||||
String server = it.next();
|
||||
if (server == null) {
|
||||
continue;
|
||||
}
|
||||
if (server.equals("pool.sks-keyservers.net")) {
|
||||
// use HKPS!
|
||||
it.set("hkps://hkps.pool.sks-keyservers.net");
|
||||
} else if (server.equals("pgp.mit.edu")) {
|
||||
// use HKPS!
|
||||
it.set("hkps://pgp.mit.edu");
|
||||
} else if (server.equals("subkeys.pgp.net")) {
|
||||
// remove, because often down and no HKPS!
|
||||
it.remove();
|
||||
}
|
||||
if (mSharedPreferences.getInt(Constants.Pref.PREF_DEFAULT_VERSION, 0) !=
|
||||
Constants.Defaults.PREF_VERSION) {
|
||||
switch (mSharedPreferences.getInt(Constants.Pref.PREF_DEFAULT_VERSION, 0)) {
|
||||
case 1:
|
||||
// fall through
|
||||
case 2:
|
||||
// fall through
|
||||
case 3: {
|
||||
// migrate keyserver to hkps
|
||||
String[] serversArray = getKeyServers();
|
||||
ArrayList<String> servers = new ArrayList<String>(Arrays.asList(serversArray));
|
||||
ListIterator<String> it = servers.listIterator();
|
||||
while (it.hasNext()) {
|
||||
String server = it.next();
|
||||
if (server == null) {
|
||||
continue;
|
||||
}
|
||||
if (server.equals("pool.sks-keyservers.net")) {
|
||||
// use HKPS!
|
||||
it.set("hkps://hkps.pool.sks-keyservers.net");
|
||||
} else if (server.equals("pgp.mit.edu")) {
|
||||
// use HKPS!
|
||||
it.set("hkps://pgp.mit.edu");
|
||||
} else if (server.equals("subkeys.pgp.net")) {
|
||||
// remove, because often down and no HKPS!
|
||||
it.remove();
|
||||
}
|
||||
|
||||
}
|
||||
setKeyServers(servers.toArray(new String[servers.size()]));
|
||||
|
||||
// migrate old uncompressed constant to new one
|
||||
if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_FILE_COMPRESSION, 0)
|
||||
== 0x21070001) {
|
||||
setDefaultFileCompression(CompressionAlgorithmTags.UNCOMPRESSED);
|
||||
}
|
||||
|
||||
// migrate away from MD5
|
||||
if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, 0)
|
||||
== HashAlgorithmTags.MD5) {
|
||||
setDefaultHashAlgorithm(HashAlgorithmTags.SHA256);
|
||||
}
|
||||
}
|
||||
// fall through
|
||||
case 4: {
|
||||
// for compatibility: change from SHA512 to SHA256
|
||||
if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, 0)
|
||||
== HashAlgorithmTags.SHA512) {
|
||||
setDefaultHashAlgorithm(HashAlgorithmTags.SHA256);
|
||||
}
|
||||
}
|
||||
}
|
||||
setKeyServers(servers.toArray(new String[servers.size()]));
|
||||
|
||||
// write new preference version
|
||||
mSharedPreferences.edit()
|
||||
.putInt(Constants.Pref.KEY_SERVERS_DEFAULT_VERSION, Constants.Defaults.KEY_SERVERS_VERSION)
|
||||
.putInt(Constants.Pref.PREF_DEFAULT_VERSION, Constants.Defaults.PREF_VERSION)
|
||||
.commit();
|
||||
}
|
||||
|
||||
// migrate old uncompressed constant to new one
|
||||
if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_FILE_COMPRESSION, 0) == 0x21070001) {
|
||||
setDefaultFileCompression(CompressionAlgorithmTags.UNCOMPRESSED);
|
||||
}
|
||||
|
||||
// migrate away from MD5
|
||||
if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, 0) == HashAlgorithmTags.MD5) {
|
||||
setDefaultHashAlgorithm(HashAlgorithmTags.SHA512);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user