diff --git a/DeDRM_plugin/ineptpdf.py b/DeDRM_plugin/ineptpdf.py index 8ce9023..9bbf092 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, b'') + return _PKCS1_v1_5.new(self._rsa).decrypt(data, 172) return (ARC4, RSA, AES) @@ -1901,9 +1901,6 @@ 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 @@ -1988,11 +1985,12 @@ class PDFDocument(object): bookkey = codecs.decode(bookkey.encode('utf-8'),'base64') bookkey = rsa.decrypt(bookkey) - if (self.verify_book_key(bookkey)): - bookkey = bookkey[-16:] - length = 16 - else: - raise ADEPTError('error decrypting book session key') + if len(bookkey) > 16: + 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))