package org.ovirt.engine.core.uutils.crypto;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Random;
import org.apache.commons.codec.binary.Base64;
import org.junit.Test;
public class EnvelopePBETest {
@Test
public void test1() throws Exception {
Random random = new Random();
for (int i=1;i<100;i++) {
byte[] r = new byte[i];
random.nextBytes(r);
String password = new Base64(0).encodeToString(r);
String encoded = EnvelopePBE.encode("PBKDF2WithHmacSHA1", 256, 4000, null, password);
assertTrue(
EnvelopePBE.check(
encoded,
password
)
);
assertFalse(
EnvelopePBE.check(
encoded,
password + "A"
)
);
}
}
@Test
public void test2() throws Exception {
String encoded = "eyJhcnRpZmFjdCI6IkVudmVsb3BlUEJFIiwiaXRlcmF0aW9ucyI6IjQwMDAiLCJzZWNyZXQiOiJNWE5nZVlwNUxSWFNRZmRMYzNDOHRVNWRINFZOODExb0czNjlrU0FLOHAwPSIsInNhbHQiOiJudXFaa2M3dlMrNUNkRzVQaEMvWE5ycDMzd0luTnNnZGZIVXlQRE5RS05rPSIsImFsZ29yaXRobSI6IlBCS0RGMldpdGhIbWFjU0hBMSIsInZlcnNpb24iOiIxIn0=";
assertTrue(
EnvelopePBE.check(
encoded,
"password"
)
);
assertFalse(
EnvelopePBE.check(
encoded,
"bad"
)
);
}
@Test
public void test3() throws Exception {
String password = "password";
assertFalse(
EnvelopePBE.encode("PBKDF2WithHmacSHA1", 256, 4000, null, password).equals(
EnvelopePBE.encode("PBKDF2WithHmacSHA1", 256, 4000, null, password)
)
);
}
}