mirror of
				https://github.com/noDRM/DeDRM_tools.git
				synced 2025-10-23 23:07:47 -04:00 
			
		
		
		
	Fix plugin crash with invalid ADE key
This commit is contained in:
		
							parent
							
								
									59839ae5c7
								
							
						
					
					
						commit
						9a11f480b5
					
				
					 2 changed files with 5 additions and 3 deletions
				
			
		|  | @ -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 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 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). | ||||||
|  | @ -511,10 +511,10 @@ class DeDRM(FileTypePlugin): | ||||||
|                             continue |                             continue | ||||||
| 
 | 
 | ||||||
|                         # Found matching key |                         # 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)) |                         print("{0} v{1}: Trying UUID-matched encryption key {2:s}".format(PLUGIN_NAME, PLUGIN_VERSION, keyname)) | ||||||
|                         of = self.temporary_file(".epub") |                         of = self.temporary_file(".epub") | ||||||
|                         try:  |                         try:  | ||||||
|  |                             userkey = codecs.decode(userkeyhex, 'hex') | ||||||
|                             result = ineptepub.decryptBook(userkey, inf.name, of.name) |                             result = ineptepub.decryptBook(userkey, inf.name, of.name) | ||||||
|                             of.close() |                             of.close() | ||||||
|                             if result == 0: |                             if result == 0: | ||||||
|  | @ -531,12 +531,13 @@ class DeDRM(FileTypePlugin): | ||||||
| 
 | 
 | ||||||
|                 # Attempt to decrypt epub with each encryption key (generated or provided). |                 # Attempt to decrypt epub with each encryption key (generated or provided). | ||||||
|                 for keyname, userkeyhex in dedrmprefs['adeptkeys'].items(): |                 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)) |                     print("{0} v{1}: Trying Encryption key {2:s}".format(PLUGIN_NAME, PLUGIN_VERSION, keyname)) | ||||||
|                     of = self.temporary_file(".epub") |                     of = self.temporary_file(".epub") | ||||||
| 
 | 
 | ||||||
|                     # Give the user key, ebook and TemporaryPersistent file to the decryption function. |                     # Give the user key, ebook and TemporaryPersistent file to the decryption function. | ||||||
|                     try: |                     try: | ||||||
|  |                         userkey = codecs.decode(userkeyhex, 'hex') | ||||||
|                         result = ineptepub.decryptBook(userkey, inf.name, of.name) |                         result = ineptepub.decryptBook(userkey, inf.name, of.name) | ||||||
|                     except ineptepub.ADEPTNewVersionError: |                     except ineptepub.ADEPTNewVersionError: | ||||||
|                         print("{0} v{1}: Book uses unsupported (too new) Adobe DRM.".format(PLUGIN_NAME, PLUGIN_VERSION, time.time()-self.starttime)) |                         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 |                     continue | ||||||
|              |              | ||||||
|                 # Found matching key |                 # 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)) |                 print("{0} v{1}: Trying UUID-matched encryption key {2:s}".format(PLUGIN_NAME, PLUGIN_VERSION, keyname)) | ||||||
|                 of = self.temporary_file(".pdf") |                 of = self.temporary_file(".pdf") | ||||||
| 
 | 
 | ||||||
|                 try:  |                 try:  | ||||||
|  |                     userkey = codecs.decode(userkeyhex, 'hex') | ||||||
|                     result = ineptpdf.decryptBook(userkey, path_to_ebook, of.name) |                     result = ineptpdf.decryptBook(userkey, path_to_ebook, of.name) | ||||||
|                     of.close() |                     of.close() | ||||||
|                     if result == 0: |                     if result == 0: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 NoDRM
						NoDRM