diff --git a/src/main/java/com/google/firebase/auth/hash/Md5.java b/src/main/java/com/google/firebase/auth/hash/Md5.java index f45362ae3..2abbe55ba 100644 --- a/src/main/java/com/google/firebase/auth/hash/Md5.java +++ b/src/main/java/com/google/firebase/auth/hash/Md5.java @@ -23,7 +23,7 @@ public class Md5 extends RepeatableHash { private Md5(Builder builder) { - super("MD5", 0, 120000, builder); + super("MD5", 0, 8192, builder); } public static Builder builder() { diff --git a/src/main/java/com/google/firebase/auth/hash/Sha1.java b/src/main/java/com/google/firebase/auth/hash/Sha1.java index d14975fda..385f4310c 100644 --- a/src/main/java/com/google/firebase/auth/hash/Sha1.java +++ b/src/main/java/com/google/firebase/auth/hash/Sha1.java @@ -23,7 +23,7 @@ public class Sha1 extends RepeatableHash { private Sha1(Builder builder) { - super("SHA1", 0, 120000, builder); + super("SHA1", 1, 8192, builder); } public static Builder builder() { diff --git a/src/main/java/com/google/firebase/auth/hash/Sha256.java b/src/main/java/com/google/firebase/auth/hash/Sha256.java index ecc0e7280..f65aee19a 100644 --- a/src/main/java/com/google/firebase/auth/hash/Sha256.java +++ b/src/main/java/com/google/firebase/auth/hash/Sha256.java @@ -23,7 +23,7 @@ public class Sha256 extends RepeatableHash { private Sha256(Builder builder) { - super("SHA256", 0, 120000, builder); + super("SHA256", 1, 8192, builder); } public static Builder builder() { diff --git a/src/main/java/com/google/firebase/auth/hash/Sha512.java b/src/main/java/com/google/firebase/auth/hash/Sha512.java index 858d16e05..e582520a9 100644 --- a/src/main/java/com/google/firebase/auth/hash/Sha512.java +++ b/src/main/java/com/google/firebase/auth/hash/Sha512.java @@ -23,7 +23,7 @@ public class Sha512 extends RepeatableHash { private Sha512(Builder builder) { - super("SHA512", 0, 120000, builder); + super("SHA512", 1, 8192, builder); } public static Builder builder() { diff --git a/src/test/java/com/google/firebase/auth/hash/InvalidHashTest.java b/src/test/java/com/google/firebase/auth/hash/InvalidHashTest.java index aabe4444c..5186a443a 100644 --- a/src/test/java/com/google/firebase/auth/hash/InvalidHashTest.java +++ b/src/test/java/com/google/firebase/auth/hash/InvalidHashTest.java @@ -48,17 +48,21 @@ public void testInvalidHmac() { @Test public void testInvalidRepeatableHash() { + // TODO(rsgowman): Once we can update to Java8, we could just do something like this instead of + // having all of the helpers: + // assertThrows(IllegalArgumentException.class, ()-> Md5.builder().setRounds(-1).build()); + List builders = ImmutableList.builder() - .add(Sha512.builder().setRounds(-1)) - .add(Sha256.builder().setRounds(-1)) - .add(Sha1.builder().setRounds(-1)) + .add(Sha512.builder().setRounds(0)) + .add(Sha256.builder().setRounds(0)) + .add(Sha1.builder().setRounds(0)) .add(Md5.builder().setRounds(-1)) .add(Pbkdf2Sha256.builder().setRounds(-1)) .add(PbkdfSha1.builder().setRounds(-1)) - .add(Sha512.builder().setRounds(120001)) - .add(Sha256.builder().setRounds(120001)) - .add(Sha1.builder().setRounds(120001)) - .add(Md5.builder().setRounds(120001)) + .add(Sha512.builder().setRounds(8193)) + .add(Sha256.builder().setRounds(8193)) + .add(Sha1.builder().setRounds(8193)) + .add(Md5.builder().setRounds(8193)) .add(Pbkdf2Sha256.builder().setRounds(120001)) .add(PbkdfSha1.builder().setRounds(120001)) .build(); @@ -72,6 +76,22 @@ public void testInvalidRepeatableHash() { } } + @Test + public void testValidRepeatableHash() { + Md5.builder().setRounds(0).build(); + Md5.builder().setRounds(8192).build(); + Sha1.builder().setRounds(1).build(); + Sha1.builder().setRounds(8192).build(); + Sha256.builder().setRounds(1).build(); + Sha256.builder().setRounds(8192).build(); + Sha512.builder().setRounds(1).build(); + Sha512.builder().setRounds(8192).build(); + PbkdfSha1.builder().setRounds(0).build(); + PbkdfSha1.builder().setRounds(120000).build(); + Pbkdf2Sha256.builder().setRounds(0).build(); + Pbkdf2Sha256.builder().setRounds(120000).build(); + } + @Test public void testInvalidScrypt() { List builders = ImmutableList.of(