summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoDRM <[email protected]>2022-08-03 19:49:20 +0200
committerNoDRM <[email protected]>2022-08-03 19:49:20 +0200
commit9a11f480b527e3d1064b890b1b5043e1c5363957 (patch)
tree727b92f18af20a9b84e49845e83a27339cfd58aa
parent59839ae5c7720f48019d72f31c47a043f1c9d58e (diff)
Fix plugin crash with invalid ADE key
-rw-r--r--CHANGELOG.md1
-rw-r--r--DeDRM_plugin/__init__.py7
2 files changed, 5 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index feb8a84..8f3c7f2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -71,3 +71,4 @@ List of changes since the fork of Apprentice Harper's repository:
- Fix a bug introduced with #48 that breaks DeDRM'ing on Calibre 4 (fixes #101).
- Fix some more Calibre-6 bugs in the Obok plugin (should fix #114).
+- Fix a bug where invalid Adobe keys could cause the plugin to stop trying subsequent keys (partially fixes #109). \ No newline at end of file
diff --git a/DeDRM_plugin/__init__.py b/DeDRM_plugin/__init__.py
index ad68ab4..ba9e2ec 100644
--- a/DeDRM_plugin/__init__.py
+++ b/DeDRM_plugin/__init__.py
@@ -511,10 +511,10 @@ class DeDRM(FileTypePlugin):
continue
# Found matching key
- userkey = codecs.decode(userkeyhex, 'hex')
print("{0} v{1}: Trying UUID-matched encryption key {2:s}".format(PLUGIN_NAME, PLUGIN_VERSION, keyname))
of = self.temporary_file(".epub")
try:
+ userkey = codecs.decode(userkeyhex, 'hex')
result = ineptepub.decryptBook(userkey, inf.name, of.name)
of.close()
if result == 0:
@@ -531,12 +531,13 @@ class DeDRM(FileTypePlugin):
# Attempt to decrypt epub with each encryption key (generated or provided).
for keyname, userkeyhex in dedrmprefs['adeptkeys'].items():
- userkey = codecs.decode(userkeyhex, 'hex')
+
print("{0} v{1}: Trying Encryption key {2:s}".format(PLUGIN_NAME, PLUGIN_VERSION, keyname))
of = self.temporary_file(".epub")
# Give the user key, ebook and TemporaryPersistent file to the decryption function.
try:
+ userkey = codecs.decode(userkeyhex, 'hex')
result = ineptepub.decryptBook(userkey, inf.name, of.name)
except ineptepub.ADEPTNewVersionError:
print("{0} v{1}: Book uses unsupported (too new) Adobe DRM.".format(PLUGIN_NAME, PLUGIN_VERSION, time.time()-self.starttime))
@@ -673,11 +674,11 @@ class DeDRM(FileTypePlugin):
continue
# Found matching key
- userkey = codecs.decode(userkeyhex, 'hex')
print("{0} v{1}: Trying UUID-matched encryption key {2:s}".format(PLUGIN_NAME, PLUGIN_VERSION, keyname))
of = self.temporary_file(".pdf")
try:
+ userkey = codecs.decode(userkeyhex, 'hex')
result = ineptpdf.decryptBook(userkey, path_to_ebook, of.name)
of.close()
if result == 0: