From a863a4856ae079a58e3fa917ca0af4b582575970 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 26 Dec 2015 09:13:16 +0900 Subject: [PATCH] update obok.py with new hashes and code from minmax --- Obok_calibre_plugin/obok_plugin/obok/obok.py | 21 ++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Obok_calibre_plugin/obok_plugin/obok/obok.py b/Obok_calibre_plugin/obok_plugin/obok/obok.py index 7f4f31e..247e3fe 100644 --- a/Obok_calibre_plugin/obok_plugin/obok/obok.py +++ b/Obok_calibre_plugin/obok_plugin/obok/obok.py @@ -1,6 +1,9 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +# Version 3.1.9 December 2015 +# Update for latest version of Windows Desktop app. +# # Version 3.1.8 November 2015 # Handle the case of Kobo Arc or Vox device (i.e. don't crash). # @@ -144,6 +147,9 @@ import xml.etree.ElementTree as ET import string import shutil +# List of all known hash keys +KOBO_HASH_KEYS = ['88b3a2e13', 'XzUhGYdFp', 'NoCanLook'] + class ENCRYPTIONError(Exception): pass @@ -384,16 +390,11 @@ class KoboLibrary(object): def __getuserkeys (self, macaddr): userids = self.__getuserids() userkeys = [] - # This version is used for versions before 3.17.0. - deviceid = hashlib.sha256('NoCanLook' + macaddr).hexdigest() - for userid in userids: - userkey = hashlib.sha256(deviceid + userid).hexdigest() - userkeys.append(binascii.a2b_hex(userkey[32:])) - # This version is used for 3.17.0 and later. - deviceid = hashlib.sha256('XzUhGYdFp' + macaddr).hexdigest() - for userid in userids: - userkey = hashlib.sha256(deviceid + userid).hexdigest() - userkeys.append(binascii.a2b_hex(userkey[32:])) + for hash in KOBO_HASH_KEYS: + deviceid = hashlib.sha256(hash + macaddr).hexdigest() + for userid in userids: + userkey = hashlib.sha256(deviceid + userid).hexdigest() + userkeys.append(binascii.a2b_hex(userkey[32:])) return userkeys class KoboBook(object):