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:
parent
240f03d372
commit
fd28883429
@ -158,22 +158,8 @@ public class ManageRepo extends ListActivity {
|
|||||||
server_line.put("inuse", R.drawable.btn_check_off);
|
server_line.put("inuse", R.drawable.btn_check_off);
|
||||||
}
|
}
|
||||||
if (repo.pubkey != null) {
|
if (repo.pubkey != null) {
|
||||||
try {
|
String fingerprint = getRepoFingerprint(repo);
|
||||||
MessageDigest digest = MessageDigest.getInstance("SHA-1");
|
server_line.put("fingerprint", fingerprint);
|
||||||
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
result.add(server_line);
|
result.add(server_line);
|
||||||
}
|
}
|
||||||
@ -244,6 +230,27 @@ public class ManageRepo extends ListActivity {
|
|||||||
return null;
|
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
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user