88 changed files with 811 additions and 808 deletions
File diff suppressed because it is too large
Load Diff
@ -1,120 +1,120 @@
@@ -1,120 +1,120 @@
|
||||
/* |
||||
* Copyright 2002-2017 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.security.crypto.scrypt; |
||||
|
||||
import static org.assertj.core.api.Assertions.*; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
/** |
||||
* @author Shazin Sadakath |
||||
* |
||||
*/ |
||||
public class SCryptPasswordEncoderTests { |
||||
|
||||
@Test |
||||
public void matches() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String result = encoder.encode("password"); |
||||
assertThat(result).isNotEqualTo("password"); |
||||
assertThat(encoder.matches("password", result)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void unicode() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String result = encoder.encode("passw\u9292rd"); |
||||
assertThat(encoder.matches("pass\u9292\u9292rd", result)).isFalse(); |
||||
assertThat(encoder.matches("passw\u9292rd", result)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void notMatches() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String result = encoder.encode("password"); |
||||
assertThat(encoder.matches("bogus", result)).isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void customParameters() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(512, 8, 4, 32, 16); |
||||
String result = encoder.encode("password"); |
||||
assertThat(result).isNotEqualTo("password"); |
||||
assertThat(encoder.matches("password", result)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void differentPasswordHashes() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String password = "secret"; |
||||
assertThat(encoder.encode(password)).isNotEqualTo(encoder.encode(password)); |
||||
} |
||||
|
||||
@Test |
||||
public void samePasswordWithDifferentParams() { |
||||
SCryptPasswordEncoder oldEncoder = new SCryptPasswordEncoder(16384, 8, 1, 32,64); |
||||
SCryptPasswordEncoder newEncoder = new SCryptPasswordEncoder(); |
||||
|
||||
String password = "secret"; |
||||
String oldEncodedPassword = oldEncoder.encode(password); |
||||
assertThat(newEncoder.matches(password, oldEncodedPassword)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void doesntMatchNullEncodedValue() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
assertThat(encoder.matches("password", null)).isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void doesntMatchEmptyEncodedValue() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
assertThat(encoder.matches("password", "")).isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void doesntMatchBogusEncodedValue() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
assertThat(encoder.matches("password", "012345678901234567890123456789")).isFalse(); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidCpuCostParameter() { |
||||
new SCryptPasswordEncoder(Integer.MIN_VALUE, 16, 2, 32, 16); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidMemoryCostParameter() { |
||||
new SCryptPasswordEncoder(2, Integer.MAX_VALUE, 2, 32, 16); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidParallelizationParameter() { |
||||
new SCryptPasswordEncoder(2, 8, Integer.MAX_VALUE, 32, 16); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidSaltLengthParameter() { |
||||
new SCryptPasswordEncoder(2, 8, 1, 16, -1); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidKeyLengthParameter() { |
||||
new SCryptPasswordEncoder(2, 8, 1, -1, 16); |
||||
} |
||||
|
||||
} |
||||
|
||||
/* |
||||
* Copyright 2002-2017 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.security.crypto.scrypt; |
||||
|
||||
import static org.assertj.core.api.Assertions.*; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
/** |
||||
* @author Shazin Sadakath |
||||
* |
||||
*/ |
||||
public class SCryptPasswordEncoderTests { |
||||
|
||||
@Test |
||||
public void matches() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String result = encoder.encode("password"); |
||||
assertThat(result).isNotEqualTo("password"); |
||||
assertThat(encoder.matches("password", result)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void unicode() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String result = encoder.encode("passw\u9292rd"); |
||||
assertThat(encoder.matches("pass\u9292\u9292rd", result)).isFalse(); |
||||
assertThat(encoder.matches("passw\u9292rd", result)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void notMatches() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String result = encoder.encode("password"); |
||||
assertThat(encoder.matches("bogus", result)).isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void customParameters() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(512, 8, 4, 32, 16); |
||||
String result = encoder.encode("password"); |
||||
assertThat(result).isNotEqualTo("password"); |
||||
assertThat(encoder.matches("password", result)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void differentPasswordHashes() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
String password = "secret"; |
||||
assertThat(encoder.encode(password)).isNotEqualTo(encoder.encode(password)); |
||||
} |
||||
|
||||
@Test |
||||
public void samePasswordWithDifferentParams() { |
||||
SCryptPasswordEncoder oldEncoder = new SCryptPasswordEncoder(16384, 8, 1, 32, 64); |
||||
SCryptPasswordEncoder newEncoder = new SCryptPasswordEncoder(); |
||||
|
||||
String password = "secret"; |
||||
String oldEncodedPassword = oldEncoder.encode(password); |
||||
assertThat(newEncoder.matches(password, oldEncodedPassword)).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void doesntMatchNullEncodedValue() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
assertThat(encoder.matches("password", null)).isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void doesntMatchEmptyEncodedValue() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
assertThat(encoder.matches("password", "")).isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void doesntMatchBogusEncodedValue() { |
||||
SCryptPasswordEncoder encoder = new SCryptPasswordEncoder(); |
||||
assertThat(encoder.matches("password", "012345678901234567890123456789")).isFalse(); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidCpuCostParameter() { |
||||
new SCryptPasswordEncoder(Integer.MIN_VALUE, 16, 2, 32, 16); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidMemoryCostParameter() { |
||||
new SCryptPasswordEncoder(2, Integer.MAX_VALUE, 2, 32, 16); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidParallelizationParameter() { |
||||
new SCryptPasswordEncoder(2, 8, Integer.MAX_VALUE, 32, 16); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidSaltLengthParameter() { |
||||
new SCryptPasswordEncoder(2, 8, 1, 16, -1); |
||||
} |
||||
|
||||
@Test(expected = IllegalArgumentException.class) |
||||
public void invalidKeyLengthParameter() { |
||||
new SCryptPasswordEncoder(2, 8, 1, -1, 16); |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
Loading…
Reference in new issue