diff --git a/jellyfin_kodi/jellyfin/websocket.py b/jellyfin_kodi/jellyfin/websocket.py index 63d471ab..47bbf05c 100644 --- a/jellyfin_kodi/jellyfin/websocket.py +++ b/jellyfin_kodi/jellyfin/websocket.py @@ -545,8 +545,10 @@ class WebSocket(object): return False result = result.lower() - value = key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" - hashed = base64.encodestring(hashlib.sha1(value).digest()).strip().lower() + # https://tools.ietf.org/html/rfc6455#page-6 + magic_string = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11".encode() + value = key + magic_string + hashed = base64.encodestring(hashlib.sha1(value).digest()).strip().lower().decode() return hashed == result def _read_headers(self): @@ -795,11 +797,11 @@ class WebSocket(object): def _recv_line(self): line = [] while True: - c = self._recv(1) + c = self._recv(1).decode() line.append(c) if c == "\n": break - return b"".join(line) + return "".join(line) class WebSocketApp(object):