diff --git a/src/org/fdroid/fdroid/ManageRepo.java b/src/org/fdroid/fdroid/ManageRepo.java index 4e948b614..46c45d421 100644 --- a/src/org/fdroid/fdroid/ManageRepo.java +++ b/src/org/fdroid/fdroid/ManageRepo.java @@ -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()) {