/** * Transforms {@link EncryptTaskCliArguments} to {@link EncryptParameters} * * @param taskCliArguments * @return populated task parameters */ @Override public EncryptParameters toTaskParameters(EncryptTaskCliArguments taskCliArguments) { EncryptParameters parameters = new EncryptParameters(taskCliArguments.getEncryptionType().getEnumValue()); populateAbstractParameters(parameters, taskCliArguments); populateSourceParameters(parameters, taskCliArguments); populateOutputTaskParameters(parameters, taskCliArguments); populateOutputPrefix(parameters, taskCliArguments); String ownerPassword = taskCliArguments.getAdministratorPassword(); if(ownerPassword.isEmpty()){ ownerPassword = UUID.randomUUID().toString(); } parameters.setOwnerPassword(ownerPassword); parameters.setUserPassword(taskCliArguments.getUserPassword()); if (taskCliArguments.isAllow()) { for (PdfAccessPermissionAdapter eachAllowedPermissionAdapter : taskCliArguments.getAllow()) { parameters.addPermission(eachAllowedPermissionAdapter.getEnumValue()); } } return parameters; } }
@Test public void testEmptyBoth() { EncryptParameters params = new EncryptParameters(PdfEncryption.AES_ENC_128); params.setOwnerPassword(""); params.setUserPassword(""); assertFalse(victim.isValid(params, null)); }
@Test public void testEmptyUser() { EncryptParameters params = new EncryptParameters(PdfEncryption.AES_ENC_128); params.setUserPassword(""); params.setOwnerPassword("Chuck"); assertTrue(victim.isValid(params, null)); }
@Test public void testBoth() { EncryptParameters params = new EncryptParameters(PdfEncryption.AES_ENC_128); params.setOwnerPassword("Chuck"); params.setUserPassword("Chuck"); assertTrue(victim.isValid(params, null)); }
@Test public void testOwner() { EncryptParameters params = new EncryptParameters(PdfEncryption.AES_ENC_128); params.setOwnerPassword("Chuck"); params.setUserPassword(null); assertTrue(victim.isValid(params, null)); }
@Test public void testUser() { EncryptParameters params = new EncryptParameters(PdfEncryption.AES_ENC_128); params.setOwnerPassword(null); params.setUserPassword("Chuck"); assertTrue(victim.isValid(params, null)); }
@Test public void testEmptyOwner() { EncryptParameters params = new EncryptParameters(PdfEncryption.AES_ENC_128); params.setOwnerPassword(""); params.setUserPassword("Chuck"); assertTrue(victim.isValid(params, null)); }
@Test public void aes256WithUserPassword() throws IOException { setUpParameters(PdfEncryption.AES_ENC_256); parameters.setUserPassword("1234"); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted("1234"); testContext.assertCreator().forEachPdfOutput(d -> { assertTrue(d.isEncrypted()); }); }
@Test public void aes256WithOwner() throws IOException { setUpParameters(PdfEncryption.AES_ENC_256); parameters.setVersion(PdfVersion.VERSION_1_7); parameters.setOwnerPassword("Chuck"); parameters.setUserPassword("Norris"); parameters.addPermission(PdfAccessPermission.COPY_AND_EXTRACT); parameters.addPermission(PdfAccessPermission.FILL_FORMS); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted("Norris"); testContext.assertCreator().assertVersion(PdfVersion.VERSION_1_7).forEachPdfOutput(d -> { assertTrue(d.isEncrypted()); assertTrue(d.getCurrentAccessPermission().canExtractContent()); assertTrue(d.getCurrentAccessPermission().canFillInForm()); }); }