From dcb3429884a153442d5fa92d91f2ce2b3d380f43 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 8 Feb 2017 11:13:53 +0000 Subject: [PATCH] Enforce all hmac/mac to always be lower case. --- .../java/at/bitfire/davdroid/journalmanager/Helpers.java | 6 +++++- .../davdroid/journalmanager/JournalEntryManager.java | 2 +- .../at/bitfire/davdroid/journalmanager/JournalManager.java | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/at/bitfire/davdroid/journalmanager/Helpers.java b/app/src/main/java/at/bitfire/davdroid/journalmanager/Helpers.java index c25ef7c2..641e0839 100644 --- a/app/src/main/java/at/bitfire/davdroid/journalmanager/Helpers.java +++ b/app/src/main/java/at/bitfire/davdroid/journalmanager/Helpers.java @@ -120,9 +120,13 @@ public class Helpers { try { MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] hash = digest.digest(base); - return Hex.toHexString(hash); + return toHex(hash); } catch (Exception ex) { throw new RuntimeException(ex); } } + + public static String toHex(byte[] bytes) { + return Hex.toHexString(bytes).toLowerCase(); + } } diff --git a/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalEntryManager.java b/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalEntryManager.java index b5fe6592..aac438b6 100644 --- a/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalEntryManager.java +++ b/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalEntryManager.java @@ -105,7 +105,7 @@ public class JournalEntryManager extends BaseManager { uuid = previous.getUuid(); } - return Hex.toHexString(calculateHmac(keyBase64, uuid)); + return Helpers.toHex(calculateHmac(keyBase64, uuid)); } } diff --git a/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalManager.java b/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalManager.java index bbed9b7e..6d1002f7 100644 --- a/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalManager.java +++ b/app/src/main/java/at/bitfire/davdroid/journalmanager/JournalManager.java @@ -19,6 +19,7 @@ import okhttp3.Response; import okhttp3.ResponseBody; import static at.bitfire.davdroid.journalmanager.Helpers.sha256; +import static at.bitfire.davdroid.journalmanager.Helpers.toHex; public class JournalManager extends BaseManager { final static private Type journalType = new TypeToken>() { @@ -104,7 +105,7 @@ public class JournalManager extends BaseManager { byte[] correctHash = calculateHmac(keyBase64); if (!Arrays.areEqual(hmac, correctHash)) { - throw new Exceptions.IntegrityException("Bad HMAC. " + Hex.toHexString(hmac) + " != " + Hex.toHexString(correctHash)); + throw new Exceptions.IntegrityException("Bad HMAC. " + toHex(hmac) + " != " + toHex(correctHash)); } }