From 8aa2157d55b533d77fd7e4bf453b58bd0625e918 Mon Sep 17 00:00:00 2001 From: apprenticeharper Date: Fri, 15 Jan 2016 06:30:54 +0000 Subject: [PATCH] Completely remove erroneous check --- .../DeDRM.app/Contents/Resources/ineptepub.py | 10 +++------- .../DeDRM.app/Contents/Resources/ineptpdf.py | 10 +++------- .../DeDRM_App/DeDRM_lib/lib/ineptepub.py | 10 +++------- .../DeDRM_App/DeDRM_lib/lib/ineptpdf.py | 10 +++------- DeDRM_calibre_plugin/DeDRM_plugin.zip | Bin 344949 -> 344892 bytes .../DeDRM_plugin/ineptepub.py | 10 +++------- DeDRM_calibre_plugin/DeDRM_plugin/ineptpdf.py | 10 +++------- Other_Tools/Kobo/obok.py | 2 +- 8 files changed, 19 insertions(+), 43 deletions(-) diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptepub.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptepub.py index 5c135ad..db3e54b 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptepub.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptepub.py @@ -3,7 +3,7 @@ from __future__ import with_statement -# ineptepub.pyw, version 6.4 +# ineptepub.pyw, version 6.5 # Copyright © 2009-2010 by i♥cabbages # Released under the terms of the GNU General Public Licence, version 3 @@ -41,13 +41,14 @@ from __future__ import with_statement # 6.2 - Handle UTF-8 file names inside an ePub, fix by Jose Luis # 6.3 - Add additional check on DER file sanity # 6.4 - Remove erroneous check on DER file sanity +# 6.5 - Completely remove erroneous check on DER file sanity """ Decrypt Adobe Digital Editions encrypted ePub books. """ __license__ = 'GPL v3' -__version__ = "6.4" +__version__ = "6.5" import sys import os @@ -316,11 +317,6 @@ def _load_crypto_pycrypto(): key = [key.getChild(x).value for x in xrange(1, 4)] key = [self.bytesToNumber(v) for v in key] self._rsa = _RSA.construct(key) - # check if pointer is not NULL - try: - c = self._rsa.contents - except ValueError: - raise ADEPTError('Error parsing ADEPT user key DER') def bytesToNumber(self, bytes): total = 0L diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptpdf.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptpdf.py index 839297f..0e25d29 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptpdf.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/ineptpdf.py @@ -3,7 +3,7 @@ from __future__ import with_statement -# ineptpdf.pyw, version 8.0.3 +# ineptpdf.pyw, version 8.0.4 # Copyright © 2009-2010 by i♥cabbages # Released under the terms of the GNU General Public Licence, version 3 @@ -56,6 +56,7 @@ from __future__ import with_statement # 8.0.1 - Broken Metadata fix. # 8.0.2 - Add additional check on DER file sanity # 8.0.3 - Remove erroneous check on DER file sanity +# 8.0.4 - Completely remove erroneous check on DER file sanity """ @@ -63,7 +64,7 @@ Decrypts Adobe ADEPT-encrypted PDF files. """ __license__ = 'GPL v3' -__version__ = "8.0.3" +__version__ = "8.0.4" import sys import os @@ -387,11 +388,6 @@ def _load_crypto_pycrypto(): key = [key.getChild(x).value for x in xrange(1, 4)] key = [self.bytesToNumber(v) for v in key] self._rsa = _RSA.construct(key) - # check if pointer is not NULL - try: - c = self._rsa.contents - except ValueError: - raise ADEPTError('Error parsing ADEPT user key DER') def bytesToNumber(self, bytes): total = 0L diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptepub.py b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptepub.py index 5c135ad..db3e54b 100644 --- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptepub.py +++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptepub.py @@ -3,7 +3,7 @@ from __future__ import with_statement -# ineptepub.pyw, version 6.4 +# ineptepub.pyw, version 6.5 # Copyright © 2009-2010 by i♥cabbages # Released under the terms of the GNU General Public Licence, version 3 @@ -41,13 +41,14 @@ from __future__ import with_statement # 6.2 - Handle UTF-8 file names inside an ePub, fix by Jose Luis # 6.3 - Add additional check on DER file sanity # 6.4 - Remove erroneous check on DER file sanity +# 6.5 - Completely remove erroneous check on DER file sanity """ Decrypt Adobe Digital Editions encrypted ePub books. """ __license__ = 'GPL v3' -__version__ = "6.4" +__version__ = "6.5" import sys import os @@ -316,11 +317,6 @@ def _load_crypto_pycrypto(): key = [key.getChild(x).value for x in xrange(1, 4)] key = [self.bytesToNumber(v) for v in key] self._rsa = _RSA.construct(key) - # check if pointer is not NULL - try: - c = self._rsa.contents - except ValueError: - raise ADEPTError('Error parsing ADEPT user key DER') def bytesToNumber(self, bytes): total = 0L diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptpdf.py b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptpdf.py index 839297f..0e25d29 100644 --- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptpdf.py +++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/ineptpdf.py @@ -3,7 +3,7 @@ from __future__ import with_statement -# ineptpdf.pyw, version 8.0.3 +# ineptpdf.pyw, version 8.0.4 # Copyright © 2009-2010 by i♥cabbages # Released under the terms of the GNU General Public Licence, version 3 @@ -56,6 +56,7 @@ from __future__ import with_statement # 8.0.1 - Broken Metadata fix. # 8.0.2 - Add additional check on DER file sanity # 8.0.3 - Remove erroneous check on DER file sanity +# 8.0.4 - Completely remove erroneous check on DER file sanity """ @@ -63,7 +64,7 @@ Decrypts Adobe ADEPT-encrypted PDF files. """ __license__ = 'GPL v3' -__version__ = "8.0.3" +__version__ = "8.0.4" import sys import os @@ -387,11 +388,6 @@ def _load_crypto_pycrypto(): key = [key.getChild(x).value for x in xrange(1, 4)] key = [self.bytesToNumber(v) for v in key] self._rsa = _RSA.construct(key) - # check if pointer is not NULL - try: - c = self._rsa.contents - except ValueError: - raise ADEPTError('Error parsing ADEPT user key DER') def bytesToNumber(self, bytes): total = 0L diff --git a/DeDRM_calibre_plugin/DeDRM_plugin.zip b/DeDRM_calibre_plugin/DeDRM_plugin.zip index 8c0dceacec67f827399d6146157467f0e48a11ec..9261c6e4ec1cbe9d32ea87fef08a3a97239a717a 100644 GIT binary patch delta 25042 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 t0YH~>zyJKp)SFDaOPMN4 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 NLIpww&n*Q2008R}8Mpud diff --git a/DeDRM_calibre_plugin/DeDRM_plugin/ineptepub.py b/DeDRM_calibre_plugin/DeDRM_plugin/ineptepub.py index 5c135ad..db3e54b 100644 --- a/DeDRM_calibre_plugin/DeDRM_plugin/ineptepub.py +++ b/DeDRM_calibre_plugin/DeDRM_plugin/ineptepub.py @@ -3,7 +3,7 @@ from __future__ import with_statement -# ineptepub.pyw, version 6.4 +# ineptepub.pyw, version 6.5 # Copyright © 2009-2010 by i♥cabbages # Released under the terms of the GNU General Public Licence, version 3 @@ -41,13 +41,14 @@ from __future__ import with_statement # 6.2 - Handle UTF-8 file names inside an ePub, fix by Jose Luis # 6.3 - Add additional check on DER file sanity # 6.4 - Remove erroneous check on DER file sanity +# 6.5 - Completely remove erroneous check on DER file sanity """ Decrypt Adobe Digital Editions encrypted ePub books. """ __license__ = 'GPL v3' -__version__ = "6.4" +__version__ = "6.5" import sys import os @@ -316,11 +317,6 @@ def _load_crypto_pycrypto(): key = [key.getChild(x).value for x in xrange(1, 4)] key = [self.bytesToNumber(v) for v in key] self._rsa = _RSA.construct(key) - # check if pointer is not NULL - try: - c = self._rsa.contents - except ValueError: - raise ADEPTError('Error parsing ADEPT user key DER') def bytesToNumber(self, bytes): total = 0L diff --git a/DeDRM_calibre_plugin/DeDRM_plugin/ineptpdf.py b/DeDRM_calibre_plugin/DeDRM_plugin/ineptpdf.py index 839297f..0e25d29 100644 --- a/DeDRM_calibre_plugin/DeDRM_plugin/ineptpdf.py +++ b/DeDRM_calibre_plugin/DeDRM_plugin/ineptpdf.py @@ -3,7 +3,7 @@ from __future__ import with_statement -# ineptpdf.pyw, version 8.0.3 +# ineptpdf.pyw, version 8.0.4 # Copyright © 2009-2010 by i♥cabbages # Released under the terms of the GNU General Public Licence, version 3 @@ -56,6 +56,7 @@ from __future__ import with_statement # 8.0.1 - Broken Metadata fix. # 8.0.2 - Add additional check on DER file sanity # 8.0.3 - Remove erroneous check on DER file sanity +# 8.0.4 - Completely remove erroneous check on DER file sanity """ @@ -63,7 +64,7 @@ Decrypts Adobe ADEPT-encrypted PDF files. """ __license__ = 'GPL v3' -__version__ = "8.0.3" +__version__ = "8.0.4" import sys import os @@ -387,11 +388,6 @@ def _load_crypto_pycrypto(): key = [key.getChild(x).value for x in xrange(1, 4)] key = [self.bytesToNumber(v) for v in key] self._rsa = _RSA.construct(key) - # check if pointer is not NULL - try: - c = self._rsa.contents - except ValueError: - raise ADEPTError('Error parsing ADEPT user key DER') def bytesToNumber(self, bytes): total = 0L diff --git a/Other_Tools/Kobo/obok.py b/Other_Tools/Kobo/obok.py index 26d1e38..9720dcf 100644 --- a/Other_Tools/Kobo/obok.py +++ b/Other_Tools/Kobo/obok.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Version 6.3.5 January 2016 +# Version 3.2.0 January 2016 # Update for latest version of Windows Desktop app. # Support Kobo devices in the command line version. #