diff --git a/src/main/java/io/kamax/mxisd/hash/HashEngine.java b/src/main/java/io/kamax/mxisd/hash/HashEngine.java index 82655fa..e026c94 100644 --- a/src/main/java/io/kamax/mxisd/hash/HashEngine.java +++ b/src/main/java/io/kamax/mxisd/hash/HashEngine.java @@ -9,6 +9,7 @@ import org.apache.commons.lang3.RandomStringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Base64; import java.util.List; public class HashEngine { @@ -18,6 +19,7 @@ public class HashEngine { private final List providers; private final HashStorage hashStorage; private final HashingConfig config; + private final Base64.Encoder base64 = Base64.getUrlEncoder().withoutPadding(); private String pepper; public HashEngine(List providers, HashStorage hashStorage, HashingConfig config) { @@ -51,7 +53,7 @@ public class HashEngine { } protected String hash(ThreePidMapping pidMapping) { - return DigestUtils.sha256Hex(pidMapping.getValue() + " " + pidMapping.getMedium() + " " + getPepper()); + return base64.encodeToString(DigestUtils.sha256(pidMapping.getValue() + " " + pidMapping.getMedium() + " " + getPepper())); } protected String newPepper() { diff --git a/src/test/java/io/kamax/mxisd/test/hash/HashEngineTest.java b/src/test/java/io/kamax/mxisd/test/hash/HashEngineTest.java index f909d14..8d4c085 100644 --- a/src/test/java/io/kamax/mxisd/test/hash/HashEngineTest.java +++ b/src/test/java/io/kamax/mxisd/test/hash/HashEngineTest.java @@ -5,11 +5,14 @@ import static org.junit.Assert.assertEquals; import org.apache.commons.codec.digest.DigestUtils; import org.junit.Test; +import java.util.Base64; + public class HashEngineTest { @Test public void sha256test() { - assertEquals("a26de61ae3055f84b33ac1a179b9ad5301f9109024f4db1ae653ea525d2136f4", - DigestUtils.sha256Hex("user2@mail.homeserver.tld email I9x4vpcWjqp9X8iiOY4a")); + Base64.Encoder encoder = Base64.getUrlEncoder().withoutPadding(); + assertEquals("rujYzy1w0JxulN_rVlErGUmkdXT5znL0sjSF_IWreko", + encoder.encodeToString(DigestUtils.sha256("user@mail.homeserver.tld email I9x4vpcWjqp9X8iiOY4a"))); } }