]> xmof Git - DeDRM.git/commitdiff
DeDRM ion: Correctly throw last exception if decrypt fails
authorMartin Rys <martin@rys.rs>
Sun, 27 Oct 2024 21:57:43 +0000 (22:57 +0100)
committernoDRM <no_drm123@protonmail.com>
Sun, 10 Nov 2024 13:09:45 +0000 (13:09 +0000)
DeDRM_plugin/ion.py

index 9d9e49c56da26944ce34546432b86d93e837904e..36c542ee8b63a2ee19cd334338c48d94f550021f 100644 (file)
@@ -13,6 +13,7 @@ Revision history:
 
 Copyright © 2013-2020 Apprentice Harper et al.
 """
+from __future__ import annotations
 
 import collections
 import hashlib
@@ -1345,7 +1346,7 @@ class DrmIonVoucher(object):
                          process_V4648(shared), process_V5683(shared)]
 
         decrypted=False
-        ex=None
+        lastexception: Exception | None = None
         for sharedsecret in sharedsecrets:
             key = hmac.new(sharedsecret, b"PIDv3", digestmod=hashlib.sha256).digest()
             aes = AES.new(key[:32], AES.MODE_CBC, self.cipheriv[:16])
@@ -1362,9 +1363,10 @@ class DrmIonVoucher(object):
                 print("Decryption succeeded")
                 break
             except Exception as ex:
+                lastexception = ex
                 print("Decryption failed, trying next fallback ")
         if not decrypted:
-            raise ex
+            raise lastexception
 
         self.drmkey.stepin()
         while self.drmkey.hasnext():