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 2014/11/17 10:54:17 UTC
svn commit: r1640127 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
Author: lehmi
Date: Mon Nov 17 09:54:17 2014
New Revision: 1640127
URL: http://svn.apache.org/r1640127
Log:
PDFBOX-2469: avoid BadPaddingException by not using a CipherInputStream
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java?rev=1640127&r1=1640126&r2=1640127&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java Mon Nov 17 09:54:17 2014
@@ -323,19 +323,10 @@ public abstract class SecurityHandler
SecretKey aesKey = new SecretKeySpec(finalKey, "AES");
IvParameterSpec ips = new IvParameterSpec(iv);
decryptCipher.init(decrypt ? Cipher.DECRYPT_MODE : Cipher.ENCRYPT_MODE, aesKey, ips);
- CipherInputStream cipherStream = new CipherInputStream(data, decryptCipher);
-
- try
- {
- byte[] buffer = new byte[4096];
- for (int n = 0; -1 != (n = cipherStream.read(buffer));)
- {
- output.write(buffer, 0, n);
- }
- }
- finally
+ byte[] buffer = new byte[256];
+ for (int n = 0; -1 != (n = data.read(buffer));)
{
- cipherStream.close();
+ output.write(decryptCipher.update(buffer,0, n ));
}
}
catch (InvalidKeyException e)