break out signing key fingerprint calculation into its own method

This will be needed for checking an incoming repo URL with a fingerprint
included to see if that uri/fingerprint already exists in the database.
This commit is contained in:
Hans-Christoph Steiner 2013-11-19 23:58:29 -05:00
parent 240f03d372
commit fd28883429

View File

@ -158,22 +158,8 @@ public class ManageRepo extends ListActivity {
server_line.put("inuse", R.drawable.btn_check_off);
}
if (repo.pubkey != null) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(Hasher.unhex(repo.pubkey));
byte[] fingerprint = digest.digest();
Formatter formatter = new Formatter(new StringBuilder());
formatter.format("%02X", fingerprint[0]);
for (int i = 1; i < fingerprint.length; i++) {
formatter.format(i % 5 == 0 ? " %02X" : ":%02X",
fingerprint[i]);
}
server_line.put("fingerprint", formatter.toString());
formatter.close();
} catch (Exception e) {
Log.w("FDroid", "Unable to get certificate fingerprint.\n"
+ Log.getStackTraceString(e));
}
String fingerprint = getRepoFingerprint(repo);
server_line.put("fingerprint", fingerprint);
}
result.add(server_line);
}
@ -244,6 +230,27 @@ public class ManageRepo extends ListActivity {
return null;
}
protected String getRepoFingerprint(Repo repo) {
String ret = null;
try {
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(Hasher.unhex(repo.pubkey));
byte[] fingerprint = digest.digest();
Formatter formatter = new Formatter(new StringBuilder());
formatter.format("%02X", fingerprint[0]);
for (int i = 1; i < fingerprint.length; i++) {
formatter.format(i % 5 == 0 ? " %02X" : ":%02X",
fingerprint[i]);
}
ret = formatter.toString();
formatter.close();
} catch (Exception e) {
Log.w("FDroid", "Unable to get certificate fingerprint.\n"
+ Log.getStackTraceString(e));
}
return ret;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {