You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/08/02 05:47:15 UTC
svn commit: r1903187 - in /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption: TestPublicKeyEncryption.java TestSymmetricKeyEncryption.java
Author: lehmi
Date: Tue Aug 2 05:47:15 2022
New Revision: 1903187
URL: http://svn.apache.org/viewvc?rev=1903187&view=rev
Log:
PDFBOX-5483: replace InputStream with RandomAccessRead
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java?rev=1903187&r1=1903186&r2=1903187&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java Tue Aug 2 05:47:15 2022
@@ -36,6 +36,7 @@ import javax.crypto.Cipher;
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.io.MemoryUsageSetting;
+import org.apache.pdfbox.io.RandomAccessReadBuffer;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.PublicKeyProtectionPolicy;
@@ -333,8 +334,9 @@ class TestPublicKeyEncryption
@Test
void testReadPubkeyEncryptedAES128() throws IOException
{
- try (InputStream is = TestPublicKeyEncryption.class.getResourceAsStream("AESkeylength128.pdf");
- PDDocument doc = Loader.loadPDF(is,
+ try (PDDocument doc = Loader.loadPDF(
+ RandomAccessReadBuffer.createBufferFromStream(
+ TestPublicKeyEncryption.class.getResourceAsStream("AESkeylength128.pdf")),
"w!z%C*F-JaNdRgUk",
TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-4421-keystore.pfx"),
"testnutzer"))
@@ -356,8 +358,9 @@ class TestPublicKeyEncryption
@Test
void testReadPubkeyEncryptedAES256() throws IOException
{
- try (InputStream is = TestPublicKeyEncryption.class.getResourceAsStream("AESkeylength256.pdf");
- PDDocument doc = Loader.loadPDF(is,
+ try (PDDocument doc = Loader.loadPDF(
+ RandomAccessReadBuffer.createBufferFromStream(
+ TestPublicKeyEncryption.class.getResourceAsStream("AESkeylength256.pdf")),
"w!z%C*F-JaNdRgUk",
TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-4421-keystore.pfx"),
"testnutzer"))
@@ -379,10 +382,11 @@ class TestPublicKeyEncryption
@Test
void testReadPubkeyEncryptedAES128withMetadataExposed() throws IOException
{
- try (InputStream is = TestPublicKeyEncryption.class.getResourceAsStream("AES128ExposedMeta.pdf");
- PDDocument doc = Loader.loadPDF(is, "",
- TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-5249.p12"), "test",
- MemoryUsageSetting.setupMainMemoryOnly()))
+ try (PDDocument doc = Loader.loadPDF(
+ RandomAccessReadBuffer.createBufferFromStream(
+ TestPublicKeyEncryption.class.getResourceAsStream("AES128ExposedMeta.pdf")), //
+ "", TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-5249.p12"), //
+ "test", MemoryUsageSetting.setupMainMemoryOnly()))
{
assertEquals("PublicKeySecurityHandler",
doc.getEncryption().getSecurityHandler().getClass().getSimpleName());
@@ -402,10 +406,11 @@ class TestPublicKeyEncryption
@Test
void testReadPubkeyEncryptedAES256withMetadataExposed() throws IOException
{
- try (InputStream is = TestPublicKeyEncryption.class.getResourceAsStream("AES256ExposedMeta.pdf");
- PDDocument doc = Loader.loadPDF(is, "",
- TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-5249.p12"), "test",
- MemoryUsageSetting.setupMainMemoryOnly()))
+ try (PDDocument doc = Loader.loadPDF(
+ RandomAccessReadBuffer.createBufferFromStream(
+ TestPublicKeyEncryption.class.getResourceAsStream("AES256ExposedMeta.pdf")), //
+ "", TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-5249.p12"), //
+ "test", MemoryUsageSetting.setupMainMemoryOnly()))
{
assertEquals("PublicKeySecurityHandler",
doc.getEncryption().getSecurityHandler().getClass().getSimpleName());
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java?rev=1903187&r1=1903186&r2=1903187&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java Tue Aug 2 05:47:15 2022
@@ -24,9 +24,7 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.fail;
import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -44,6 +42,9 @@ import org.apache.pdfbox.Loader;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.io.IOUtils;
+import org.apache.pdfbox.io.RandomAccessRead;
+import org.apache.pdfbox.io.RandomAccessReadBuffer;
+import org.apache.pdfbox.io.RandomAccessReadBufferedFile;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
@@ -262,7 +263,9 @@ class TestSymmetricKeyEncryption
int sizeOfFileWithEmbeddedFile = inputFileWithEmbeddedFileAsByteArray.length;
File extractedEmbeddedFile
- = extractEmbeddedFile(new ByteArrayInputStream(inputFileWithEmbeddedFileAsByteArray), "innerFile.pdf");
+ = extractEmbeddedFile(
+ new RandomAccessReadBuffer(inputFileWithEmbeddedFileAsByteArray),
+ "innerFile.pdf");
testSymmEncrForKeySizeInner(40, false, sizeOfFileWithEmbeddedFile,
inputFileWithEmbeddedFileAsByteArray, extractedEmbeddedFile, USERPASSWORD, OWNERPASSWORD);
@@ -426,9 +429,9 @@ class TestSymmetricKeyEncryption
}
// extract the embedded file, saves it, and return the extracted saved file
- private File extractEmbeddedFile(InputStream pdfInputStream, String name) throws IOException
+ private File extractEmbeddedFile(RandomAccessRead pdfSource, String name) throws IOException
{
- PDDocument docWithEmbeddedFile = Loader.loadPDF(pdfInputStream);
+ PDDocument docWithEmbeddedFile = Loader.loadPDF(pdfSource);
PDDocumentCatalog catalog = docWithEmbeddedFile.getDocumentCatalog();
PDDocumentNameDictionary names = catalog.getNames();
PDEmbeddedFilesNameTreeNode embeddedFiles = names.getEmbeddedFiles();
@@ -464,7 +467,9 @@ class TestSymmetricKeyEncryption
encryptedDoc.setAllSecurityToBeRemoved(true);
encryptedDoc.save(decryptedFile);
- File extractedEmbeddedFile = extractEmbeddedFile(new FileInputStream(decryptedFile), "decryptedInnerFile-" + keyLength + "-bit-" + (preferAES ? "AES" : "RC4") + ".pdf");
+ File extractedEmbeddedFile = extractEmbeddedFile(
+ new RandomAccessReadBufferedFile(decryptedFile), "decryptedInnerFile-"
+ + keyLength + "-bit-" + (preferAES ? "AES" : "RC4") + ".pdf");
assertEquals(embeddedFilePriorToEncryption.length(), extractedEmbeddedFile.length(),
keyLength + "-bit " + (preferAES ? "AES" : "RC4") + " decrypted inner attachment pdf should have same size as plain one");