You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/11/14 19:28:59 UTC

svn commit: r1639721 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/StandardSecurityHandler.java

Author: tilman
Date: Fri Nov 14 18:28:59 2014
New Revision: 1639721

URL: http://svn.apache.org/r1639721
Log:
PDFBOX-2456: use the digest method with length parameter (that was used in encryption and that produces files readable with Adobe Reader) to get user password from owner password in decryption

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/StandardSecurityHandler.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/StandardSecurityHandler.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/StandardSecurityHandler.java?rev=1639721&r1=1639720&r2=1639721&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/StandardSecurityHandler.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/StandardSecurityHandler.java Fri Nov 14 18:28:59 2014
@@ -580,7 +580,7 @@ public final class StandardSecurityHandl
             for( int i=0; i<50; i++ )
             {
                 md.reset();
-                md.update( digest );
+                md.update(digest, 0, (int) length);
                 digest = md.digest();
             }
         }
@@ -599,7 +599,7 @@ public final class StandardSecurityHandl
             byte[] otemp = new byte[ owner.length ]; //sm
             System.arraycopy( owner, 0, otemp, 0, owner.length ); //sm
             rc4.write( owner, result);//sm
-
+            
             for( int i=19; i>=0; i-- )
             {
                 System.arraycopy( rc4Key, 0, iterationKey, 0, rc4Key.length );