From 20a1b4c83db6ccc842beda4eda50a3cc810a06e0 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 6 Aug 2018 23:26:35 +0200 Subject: [PATCH] standardize on "sha256" as the hash name, like fdroidserver uses fdroidserver has always written "sha256" to the index.xml file, so client should use the same. The Java hashers will correctly respond to both "sha256" and "SHA-256", and the only place that the hashType is read from the DB and used is in the swap repo index.xml generation, where it should also use "sha256". --- app/src/main/java/org/fdroid/fdroid/RepoXMLHandler.java | 5 ++--- app/src/main/java/org/fdroid/fdroid/Utils.java | 2 +- .../org/fdroid/fdroid/installer/InstallManagerService.java | 6 +++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/RepoXMLHandler.java b/app/src/main/java/org/fdroid/fdroid/RepoXMLHandler.java index a087e6909..5aef95ac7 100644 --- a/app/src/main/java/org/fdroid/fdroid/RepoXMLHandler.java +++ b/app/src/main/java/org/fdroid/fdroid/RepoXMLHandler.java @@ -22,7 +22,6 @@ package org.fdroid.fdroid; import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; - import org.fdroid.fdroid.data.Apk; import org.fdroid.fdroid.data.App; import org.fdroid.fdroid.data.Repo; @@ -129,11 +128,11 @@ public class RepoXMLHandler extends DefaultHandler { if (currentApkHashType == null || "md5".equals(currentApkHashType)) { if (curapk.hash == null) { curapk.hash = str; - curapk.hashType = "SHA-256"; + curapk.hashType = "sha256"; } } else if ("sha256".equals(currentApkHashType)) { curapk.hash = str; - curapk.hashType = "SHA-256"; + curapk.hashType = "sha256"; } break; case ApkTable.Cols.SIGNATURE: diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java index 7c95d1995..b2b8c499d 100644 --- a/app/src/main/java/org/fdroid/fdroid/Utils.java +++ b/app/src/main/java/org/fdroid/fdroid/Utils.java @@ -362,7 +362,7 @@ public final class Utils { String ret = null; try { // keytool -list -v gives you the SHA-256 fingerprint - MessageDigest digest = MessageDigest.getInstance("SHA-256"); + MessageDigest digest = MessageDigest.getInstance("sha256"); digest.update(key); byte[] fingerprint = digest.digest(); Formatter formatter = new Formatter(new StringBuilder()); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java index 8e0f5e926..f42ce380f 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java @@ -240,7 +240,7 @@ public class InstallManagerService extends Service { * @see APK Expansion Files */ private void getObb(final String urlString, String obbUrlString, - final File obbDestFile, final String sha256) { + final File obbDestFile, final String hash) { if (obbDestFile == null || obbDestFile.exists() || TextUtils.isEmpty(obbUrlString)) { return; } @@ -267,7 +267,7 @@ public class InstallManagerService extends Service { + " to " + localApkUri); try { - if (Hasher.isFileMatchingHash(localFile, sha256, "SHA-256")) { + if (Hasher.isFileMatchingHash(localFile, hash, "sha256")) { Utils.debugLog(TAG, "Installing OBB " + localFile + " to " + obbDestFile); FileUtils.forceMkdirParent(obbDestFile); FileUtils.copyFile(localFile, obbDestFile); @@ -280,7 +280,7 @@ public class InstallManagerService extends Service { } } } else { - Utils.debugLog(TAG, localFile + " deleted, did not match hash: " + sha256); + Utils.debugLog(TAG, localFile + " deleted, did not match hash: " + hash); } } catch (IOException e) { e.printStackTrace();