Author: tilman
Date: Wed Feb 26 13:46:40 2025
New Revision: 1924055

URL: http://svn.apache.org/viewvc?rev=1924055&view=rev
Log:
PDFBOX-5955: add test

Modified:
    
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java

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=1924055&r1=1924054&r2=1924055&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
 Wed Feb 26 13:46:40 2025
@@ -57,6 +57,7 @@ import org.apache.pdfbox.pdmodel.encrypt
 import org.apache.pdfbox.pdmodel.encryption.StandardSecurityHandler;
 import org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage;
 import org.apache.pdfbox.rendering.PDFRenderer;
+import org.apache.pdfbox.text.PDFTextStripper;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
@@ -248,6 +249,42 @@ class TestSymmetricKeyEncryption
     }
 
     /**
+     * PDFBOX-5955: test unusual RC4 encryption that has 40 or 48 bits instead 
of 128.
+     *
+     * @throws IOException 
+     */
+    @Test
+    void testPDFBox5955() throws IOException
+    {        
+        File file40bit = new File("target/pdfs", "PDFBOX-5955-40bit.pdf");
+        File file48bit = new File("target/pdfs", "PDFBOX-5955-48bit.pdf");
+        try (PDDocument doc = Loader.loadPDF(file40bit))
+        {
+            PDFTextStripper stripper = new PDFTextStripper();
+            String text = stripper.getText(doc);
+            assertTrue(text.contains("0x0446615747"));
+        }
+        try (PDDocument doc = Loader.loadPDF(file40bit, "ownerpass"))
+        {
+            PDFTextStripper stripper = new PDFTextStripper();
+            String text = stripper.getText(doc);
+            assertTrue(text.contains("0x0446615747"));
+        }
+        try (PDDocument doc = Loader.loadPDF(file48bit))
+        {
+            PDFTextStripper stripper = new PDFTextStripper();
+            String text = stripper.getText(doc);
+            assertTrue(text.contains("0x02988E82AFF8"));
+        }
+        try (PDDocument doc = Loader.loadPDF(file48bit, "ownerpass"))
+        {
+            PDFTextStripper stripper = new PDFTextStripper();
+            String text = stripper.getText(doc);
+            assertTrue(text.contains("0x02988E82AFF8"));
+        }
+    }
+
+    /**
      * Protect a document with an embedded PDF with a key and try to reopen it
      * with that key and compare.
      *


Reply via email to