summaryrefslogtreecommitdiffstats
path: root/DeDRM_plugin/mobidedrm.py
diff options
context:
space:
mode:
authorNoDRM <[email protected]>2023-08-03 20:45:06 +0200
committerNoDRM <[email protected]>2023-08-03 20:45:06 +0200
commit53996cf49c504264a3632576f15fc492dd371860 (patch)
tree53966c3e27b9f8c55be89e7920b2cca77fdce991 /DeDRM_plugin/mobidedrm.py
parentd388ae72fd797efcef3da2b4ff8694cfaa4431cb (diff)
More Python2 fixes
Diffstat (limited to 'DeDRM_plugin/mobidedrm.py')
-rwxr-xr-xDeDRM_plugin/mobidedrm.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/DeDRM_plugin/mobidedrm.py b/DeDRM_plugin/mobidedrm.py
index 5989e8b..864c08f 100755
--- a/DeDRM_plugin/mobidedrm.py
+++ b/DeDRM_plugin/mobidedrm.py
@@ -80,11 +80,14 @@ import sys
import os
import struct
import binascii
-from alfcrypto import Pukall_Cipher
-from utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+#@@CALIBRE_COMPAT_CODE@@
+
+
+from .alfcrypto import Pukall_Cipher
+from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
class DrmException(Exception):
@@ -103,10 +106,17 @@ def PC1(key, src, decryption=True):
except:
raise
-# accepts unicode returns unicode
+letters = b'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'
+
+def crc32(s):
+ return (~binascii.crc32(s,-1))&0xFFFFFFFF
+
def checksumPid(s):
- letters = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'
- crc = (~binascii.crc32(s.encode('utf-8'),-1))&0xFFFFFFFF
+
+ s = s.encode()
+
+
+ crc = crc32(s)
crc = crc ^ (crc >> 16)
res = s
l = len(letters)
@@ -115,7 +125,7 @@ def checksumPid(s):
pos = (b // l) ^ (b % l)
res += bytes(bytearray([letters[pos%l]]))
crc >>= 8
- return res
+ return res.decode()
# expects bytearray
def getSizeOfTrailingDataEntries(ptr, size, flags):