diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java
index 52a8b5441..9c16d4674 100644
--- a/app/src/main/java/org/fdroid/fdroid/Utils.java
+++ b/app/src/main/java/org/fdroid/fdroid/Utils.java
@@ -409,7 +409,7 @@ public final class Utils {
             fis = new FileInputStream(apk);
             BufferedInputStream bis = new BufferedInputStream(fis);
 
-            byte[] dataBytes = new byte[524288];
+            byte[] dataBytes = new byte[8192];
             int nread;
             while ((nread = bis.read(dataBytes)) != -1) {
                 md.update(dataBytes, 0, nread);
diff --git a/app/src/test/java/org/fdroid/fdroid/UtilsTest.java b/app/src/test/java/org/fdroid/fdroid/UtilsTest.java
index 116d399c4..bb9589da0 100644
--- a/app/src/test/java/org/fdroid/fdroid/UtilsTest.java
+++ b/app/src/test/java/org/fdroid/fdroid/UtilsTest.java
@@ -2,7 +2,6 @@
 package org.fdroid.fdroid;
 
 import android.content.Context;
-
 import org.fdroid.fdroid.views.AppDetailsRecyclerViewAdapter;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -10,6 +9,8 @@ import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+import java.io.File;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -174,6 +175,21 @@ public class UtilsTest {
         }
     }
 
+    @Test
+    public void testGetBinaryHash() {
+        File f = TestUtils.copyResourceToTempFile("largeRepo.xml");
+        assertEquals("df1754aa4b56c86c06d7842dfd02064f0781c1f740f489d3fc158bb541c8d197",
+                Utils.getBinaryHash(f, "sha256"));
+        f = TestUtils.copyResourceToTempFile("masterKeyIndex.jar");
+        assertEquals("625d5aedcd0499fe04ebab81f3c7ae30c236cee653a914ffb587d890198f3aba",
+                Utils.getBinaryHash(f, "sha256"));
+        f = TestUtils.copyResourceToTempFile("index.fdroid.2016-10-30.jar");
+        assertEquals("c138b503c6475aa749585d0e3ad4dba3546b6d33ec485efd8ac8bd603d93fedb",
+                Utils.getBinaryHash(f, "sha256"));
+        f = TestUtils.copyResourceToTempFile("index.fdroid.2016-11-10.jar");
+        assertEquals("93bea45814fd8955cabb957e7a3f8790d6c568eaa16fa30425c2d26c60490bde",
+                Utils.getBinaryHash(f, "sha256"));
+    }
     // TODO write tests that work with a Certificate
 
 }