@Test public void canEncrypt_complexCsvFile() throws Exception { URL srcCsv = JuUrl.resource("ch/inftec/ju/util/security/JuSecurityUtilsTest_toBeEncrypted_complex.csv"); JuTextEncryptor encryptor = JuSecurityUtils.buildEncryptor().password("secret").createTextEncryptor(); String res = JuSecurityUtils.performEncryption() .csvFile(srcCsv) .encryptor(encryptor) .encryptToString(); List<String> lines = NewLineReader.createByString(res).getLines(); Assert.assertEquals(3, lines.size()); Assert.assertEquals("NormalValue;", lines.get(0)); // Check first encrypted value Assert.assertTrue(lines.get(1).startsWith("\"ENC(")); Assert.assertTrue(lines.get(1).endsWith(")\";another value")); String encryptedVal1 = new RegexUtil("\"ENC\\((.*)\\)").getMatches(lines.get(1))[0].getGroups()[0]; Assert.assertEquals("secret(;)", encryptor.decrypt(encryptedVal1)); // Check second encrypted value Assert.assertTrue(lines.get(2).startsWith("\"ENC(")); Assert.assertTrue(lines.get(2).endsWith(")\";")); String encryptedVal2 = new RegexUtil("\"ENC\\((.*)\\)").getMatches(lines.get(2))[0].getGroups()[0]; Assert.assertEquals("\"secret;\"", encryptor.decrypt(encryptedVal2)); }
@Test public void canEncrypt_simpleCsvFile() throws Exception { URL srcCsv = JuUrl.resource("ch/inftec/ju/util/security/JuSecurityUtilsTest_toBeEncrypted.csv"); JuTextEncryptor encryptor = JuSecurityUtils.buildEncryptor().password("secret").createTextEncryptor(); String res = JuSecurityUtils.performEncryption() .csvFile(srcCsv) .encryptor(encryptor) .encryptToString(); List<String> lines = NewLineReader.createByString(res).getLines(); Assert.assertEquals(4, lines.size()); Assert.assertEquals("Col1;Col2;Col3", lines.get(0)); Assert.assertEquals(";Normal Value;", lines.get(1)); Assert.assertEquals(";;", lines.get(2)); Assert.assertTrue(lines.get(3).startsWith("#Come Comment;ENC(alreadyEncrypted);")); // Check encrypted value String encryptedVal = new RegexUtil(".*ENC\\((.*)\\)$").getMatches(lines.get(3))[0].getGroups()[0]; Assert.assertEquals("myPrecious", encryptor.decrypt(encryptedVal)); }