SEC-1569: initial commit of spring-security-crypto module, consisting of encrypt, keygen, password, and util packages
This commit is contained in:
committed by
Luke Taylor
parent
afd586c96e
commit
ffa7301e7f
@@ -0,0 +1,49 @@
|
||||
package org.springframework.security.crypto.encrypt;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class EncryptorsTests {
|
||||
|
||||
@Test
|
||||
public void standard() {
|
||||
BytesEncryptor encryptor = Encryptors.standard("password");
|
||||
byte[] result = encryptor.encrypt("text".getBytes());
|
||||
assertNotNull(result);
|
||||
assertFalse(new String(result).equals("text"));
|
||||
assertEquals("text", new String(encryptor.decrypt(result)));
|
||||
assertFalse(new String(result).equals(new String(encryptor.encrypt("text".getBytes()))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void text() {
|
||||
TextEncryptor encryptor = Encryptors.text("password");
|
||||
String result = encryptor.encrypt("text");
|
||||
assertNotNull(result);
|
||||
assertFalse(result.equals("text"));
|
||||
assertEquals("text", encryptor.decrypt(result));
|
||||
assertFalse(result.equals(encryptor.encrypt("text")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryableText() {
|
||||
TextEncryptor encryptor = Encryptors.queryableText("password", "5c0744940b5c369b");
|
||||
String result = encryptor.encrypt("text");
|
||||
assertNotNull(result);
|
||||
assertFalse(result.equals("text"));
|
||||
assertEquals("text", encryptor.decrypt(result));
|
||||
assertTrue(result.equals(encryptor.encrypt("text")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noOpText() {
|
||||
TextEncryptor encryptor = Encryptors.noOpText();
|
||||
assertEquals("text", encryptor.encrypt("text"));
|
||||
assertEquals("text", encryptor.decrypt("text"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package org.springframework.security.crypto.keygen;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.security.crypto.util.EncodingUtils;
|
||||
|
||||
public class KeyGeneratorsTests {
|
||||
|
||||
@Test
|
||||
public void secureRandom() {
|
||||
BytesKeyGenerator keyGenerator = KeyGenerators.secureRandom();
|
||||
assertEquals(8, keyGenerator.getKeyLength());
|
||||
byte[] key = keyGenerator.generateKey();
|
||||
assertEquals(8, key.length);
|
||||
byte[] key2 = keyGenerator.generateKey();
|
||||
assertFalse(Arrays.equals(key, key2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void secureRandomCustomLength() {
|
||||
BytesKeyGenerator keyGenerator = KeyGenerators.secureRandom(16);
|
||||
assertEquals(16, keyGenerator.getKeyLength());
|
||||
byte[] key = keyGenerator.generateKey();
|
||||
assertEquals(16, key.length);
|
||||
byte[] key2 = keyGenerator.generateKey();
|
||||
assertFalse(Arrays.equals(key, key2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void string() {
|
||||
StringKeyGenerator keyGenerator = KeyGenerators.string();
|
||||
String hexStringKey = keyGenerator.generateKey();
|
||||
assertEquals(16, hexStringKey.length());
|
||||
assertEquals(8, EncodingUtils.hexDecode(hexStringKey).length);
|
||||
String hexStringKey2 = keyGenerator.generateKey();
|
||||
assertFalse(hexStringKey.equals(hexStringKey2));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.springframework.security.crypto.password;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class StandardPasswordEncoderTests {
|
||||
|
||||
private StandardPasswordEncoder encoder = new StandardPasswordEncoder("secret");
|
||||
|
||||
@Test
|
||||
public void matches() {
|
||||
String result = encoder.encode("password");
|
||||
assertFalse(result.equals("password"));
|
||||
assertTrue(encoder.matches("password", result));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notMatches() {
|
||||
String result = encoder.encode("password");
|
||||
assertFalse(encoder.matches("bogus", result));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.springframework.security.crypto.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class DigesterTests {
|
||||
|
||||
private Digester digester = new Digester("SHA-1", "SUN");
|
||||
|
||||
@Test
|
||||
public void digest() {
|
||||
byte[] result = digester.digest("text".getBytes());
|
||||
assertEquals(20, result.length);
|
||||
assertFalse(new String(result).equals("text"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package org.springframework.security.crypto.util;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class EncodingUtilsTests {
|
||||
|
||||
@Test
|
||||
public void hexEncode() {
|
||||
byte[] bytes = new byte[] { (byte)0x01, (byte)0xFF, (byte)65, (byte)66, (byte)67, (byte)0xC0, (byte)0xC1, (byte)0xC2 };
|
||||
String result = EncodingUtils.hexEncode(bytes);
|
||||
assertEquals("01ff414243c0c1c2", result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hexDecode() {
|
||||
byte[] bytes = new byte[] { (byte)0x01, (byte)0xFF, (byte)65, (byte)66, (byte)67, (byte)0xC0, (byte)0xC1, (byte)0xC2 };
|
||||
byte[] result = EncodingUtils.hexDecode("01ff414243c0c1c2");
|
||||
assertTrue(Arrays.equals(bytes, result));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void concatenate() {
|
||||
byte[] bytes = new byte[] { (byte)0x01, (byte)0xFF, (byte)65, (byte)66, (byte)67, (byte)0xC0, (byte)0xC1, (byte)0xC2 };
|
||||
byte[] one = new byte[] { (byte)0x01 };
|
||||
byte[] two = new byte[] { (byte)0xFF, (byte)65, (byte)66 };
|
||||
byte[] three = new byte[] { (byte)67, (byte)0xC0, (byte)0xC1, (byte)0xC2 };
|
||||
assertTrue(Arrays.equals(bytes, EncodingUtils.concatenate(one, two, three)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subArray() {
|
||||
byte[] bytes = new byte[] { (byte)0x01, (byte)0xFF, (byte)65, (byte)66, (byte)67, (byte)0xC0, (byte)0xC1, (byte)0xC2 };
|
||||
byte[] two = new byte[] { (byte)0xFF, (byte)65, (byte)66 };
|
||||
byte[] subArray = EncodingUtils.subArray(bytes, 1, 4);
|
||||
assertEquals(3, subArray.length);
|
||||
assertTrue(Arrays.equals(two, subArray));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user