From bfa40e4a697ef4f6dd89c8fdbfdb7ae570697034 Mon Sep 17 00:00:00 2001 From: Aldo Bleeker <2095835+ableeker@users.noreply.github.com> Date: Sun, 6 Feb 2022 20:09:52 +0100 Subject: [PATCH] Fix for decription key --- DeDRM_plugin/ineptpdf.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/DeDRM_plugin/ineptpdf.py b/DeDRM_plugin/ineptpdf.py index 9bbf092..8ce9023 100755 --- a/DeDRM_plugin/ineptpdf.py +++ b/DeDRM_plugin/ineptpdf.py @@ -427,7 +427,7 @@ def _load_crypto_pycrypto(): return total def decrypt(self, data): - return _PKCS1_v1_5.new(self._rsa).decrypt(data, 172) + return _PKCS1_v1_5.new(self._rsa).decrypt(data, b'') return (ARC4, RSA, AES) @@ -1901,6 +1901,9 @@ class PDFDocument(object): return def verify_book_key(self, bookkey): + if len(bookkey) <= 16: + return False + if bookkey[-17] != '\x00' and bookkey[-17] != 0: # Byte not null, invalid result return False @@ -1985,12 +1988,11 @@ class PDFDocument(object): bookkey = codecs.decode(bookkey.encode('utf-8'),'base64') bookkey = rsa.decrypt(bookkey) - if len(bookkey) > 16: - if (self.verify_book_key(bookkey)): - bookkey = bookkey[-16:] - length = 16 - else: - raise ADEPTError('error decrypting book session key') + if (self.verify_book_key(bookkey)): + bookkey = bookkey[-16:] + length = 16 + else: + raise ADEPTError('error decrypting book session key') ebx_V = int_value(param.get('V', 4)) ebx_type = int_value(param.get('EBX_ENCRYPTIONTYPE', 6))