[Minor] Implemented CryptTest after password parsing refactorings

This commit is contained in:
Robert von Burg 2023-09-08 22:21:24 +02:00
parent 4093e5e17b
commit af78eb4ac8
Signed by: eitch
GPG Key ID: 75DB9C85C74331F7
1 changed files with 34 additions and 25 deletions

View File

@ -1,7 +1,7 @@
package li.strolch.privilege.test;
import li.strolch.privilege.handler.DefaultEncryptionHandler;
import li.strolch.privilege.helper.XmlConstants;
import li.strolch.privilege.model.internal.PasswordCrypt;
import org.junit.BeforeClass;
import org.junit.Test;
@ -9,6 +9,9 @@ import java.util.HashMap;
import java.util.Map;
import static li.strolch.privilege.base.PrivilegeConstants.*;
import static li.strolch.privilege.helper.XmlConstants.*;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNotNull;
public class CryptTest {
@ -17,36 +20,42 @@ public class CryptTest {
@BeforeClass
public static void beforeClass() {
Map<String, String> parameterMap = new HashMap<>();
parameterMap.put(XmlConstants.XML_PARAM_HASH_ALGORITHM, DEFAULT_ALGORITHM);
parameterMap.put(XmlConstants.XML_PARAM_HASH_ITERATIONS, "" + DEFAULT_SMALL_ITERATIONS);
parameterMap.put(XmlConstants.XML_PARAM_HASH_KEY_LENGTH, "" + DEFAULT_KEY_LENGTH);
parameterMap.put(XML_PARAM_HASH_ALGORITHM, DEFAULT_ALGORITHM);
parameterMap.put(XML_PARAM_HASH_ITERATIONS, "" + DEFAULT_SMALL_ITERATIONS);
parameterMap.put(XML_PARAM_HASH_KEY_LENGTH, "" + DEFAULT_KEY_LENGTH);
encryptionHandler = new DefaultEncryptionHandler();
encryptionHandler.initialize(parameterMap);
}
@Test
public void shouldAssertSamePassword20() {
public void shouldAssertSamePassword1() {
// char[] password = "admin".toCharArray();
//
// byte[] salt = "admin".getBytes();
// byte[] passwordHash = encryptionHandler.hashPassword(password, salt);
//
// Crypt crypt = encryptionHandler.newCryptInstance();
// crypt.setSalt(salt);
// crypt.setPassword(passwordHash);
//
//
// encryptionHandler.
// String hash = "$PBKDF2WithHmacSHA512,100000,256$943f2d9208079322e50297f018c44d77d4e887e07bc9b37b2b80d121ad7dbd6e$8bcd819c99e79975e93e5f8bd87a376737afacd4427d7b33f0f69d0fc8030da5";
//
// requestPasswordCrypt = encryptionHandler.hashPassword(password, userPasswordCrypt.getSalt(),
// userPasswordCrypt.getHashAlgorithm(), userPasswordCrypt.getHashIterations(),
// userPasswordCrypt.getHashKeyLength());
//
// // validate password
// if (!Arrays.equals(requestPasswordCrypt.getPassword(), userPasswordCrypt.getPassword()))
// throw new InvalidCredentialsException(format("Password is incorrect for {0}", username));
String passwordCryptString
= "$PBKDF2WithHmacSHA512,100000,256$61646d696e$074aa490729dd8008282479f36ce4620b17d90ffb57088e6de32c891bc3bab07";
PasswordCrypt parsedCryptHash = PasswordCrypt.parse(passwordCryptString, null);
assertNotNull(parsedCryptHash);
char[] password = "admin".toCharArray();
byte[] salt = "admin".getBytes();
PasswordCrypt passwordCrypt = encryptionHandler.hashPassword(password, salt, "PBKDF2WithHmacSHA512", 100000,
256);
assertArrayEquals(passwordCrypt.getPassword(), parsedCryptHash.getPassword());
}
@Test
public void shouldAssertSamePassword2() {
String passwordCryptString
= "$PBKDF2WithHmacSHA512,100000,256$b633eb666211f346ed2c512693dc5365dd02acf660ab433aa9d023282a1f7362$1fbeb451878838b58778da968ae94937f2bc650b0b8118a4db8db1ba7ea0b72f";
PasswordCrypt parsedCryptHash = PasswordCrypt.parse(passwordCryptString, null);
assertNotNull(parsedCryptHash);
char[] password = "admin".toCharArray();
PasswordCrypt passwordCrypt = encryptionHandler.hashPassword(password, parsedCryptHash.getSalt(),
"PBKDF2WithHmacSHA512", 100000, 256);
assertArrayEquals(passwordCrypt.getPassword(), parsedCryptHash.getPassword());
}
}