@Test public void testShouldEncryptAndDecrypt() throws Exception { // Arrange final String PLAINTEXT = "This is a plaintext message."; logger.info("Plaintext: {}", PLAINTEXT); InputStream plainStream = new java.io.ByteArrayInputStream(PLAINTEXT.getBytes("UTF-8")); OutputStream cipherStream = new ByteArrayOutputStream(); OutputStream recoveredStream = new ByteArrayOutputStream(); // No file, just streams String filename = "tempFile.txt"; OpenPGPPasswordBasedEncryptor encryptor = new OpenPGPPasswordBasedEncryptor(EncryptionMethod.PGP.getAlgorithm(), EncryptionMethod.PGP.getProvider(), PASSWORD.toCharArray(), filename); StreamCallback encryptionCallback = encryptor.getEncryptionCallback(); StreamCallback decryptionCallback = encryptor.getDecryptionCallback(); // Act encryptionCallback.process(plainStream, cipherStream); final byte[] cipherBytes = ((ByteArrayOutputStream) cipherStream).toByteArray(); logger.info("Encrypted: {}", Hex.encodeHexString(cipherBytes)); InputStream cipherInputStream = new ByteArrayInputStream(cipherBytes); decryptionCallback.process(cipherInputStream, recoveredStream); // Assert byte[] recoveredBytes = ((ByteArrayOutputStream) recoveredStream).toByteArray(); String recovered = new String(recoveredBytes, "UTF-8"); logger.info("Recovered: {}", recovered); assert PLAINTEXT.equals(recovered); }
@Test public void testShouldDecryptExternalFile() throws Exception { // Arrange byte[] plainBytes = Files.readAllBytes(Paths.get(plainFile.getPath())); final String PLAINTEXT = new String(plainBytes, "UTF-8"); InputStream cipherStream = new FileInputStream(encryptedFile); OutputStream recoveredStream = new ByteArrayOutputStream(); // No file, just streams String filename = encryptedFile.getName(); OpenPGPPasswordBasedEncryptor encryptor = new OpenPGPPasswordBasedEncryptor(EncryptionMethod.PGP.getAlgorithm(), EncryptionMethod.PGP.getProvider(), LEGACY_PASSWORD.toCharArray(), filename); StreamCallback decryptionCallback = encryptor.getDecryptionCallback(); // Act decryptionCallback.process(cipherStream, recoveredStream); // Assert byte[] recoveredBytes = ((ByteArrayOutputStream) recoveredStream).toByteArray(); String recovered = new String(recoveredBytes, "UTF-8"); logger.info("Recovered: {}", recovered); Assert.assertEquals("Recovered text", PLAINTEXT, recovered); } }
} else { final char[] passphrase = Normalizer.normalize(password, Normalizer.Form.NFC).toCharArray(); encryptor = new OpenPGPPasswordBasedEncryptor(algorithm, providerName, passphrase, filename);
} else { final char[] passphrase = Normalizer.normalize(password, Normalizer.Form.NFC).toCharArray(); encryptor = new OpenPGPPasswordBasedEncryptor(algorithm, providerName, passphrase, filename);