From 79a5e74fde65957811dec356c9011d818dbed1c5 Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Mon, 5 Sep 2022 23:55:27 -0400 Subject: [PATCH 1/3] Update client version and xvc hash seed --- node/package.json | 1 + node/src/client.js | 3 ++- node/src/modutil.js | 28 ++++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 node/src/modutil.js diff --git a/node/package.json b/node/package.json index fb0b8e0..536be50 100644 --- a/node/package.json +++ b/node/package.json @@ -19,6 +19,7 @@ }, "dependencies": { "arg": "^4.1.3", + "hash-wasm": "^4.8.0", "node-kakao": "4.5.0", "systemd-daemon": "^1.1.2" }, diff --git a/node/src/client.js b/node/src/client.js index 15b71f5..801a5c6 100644 --- a/node/src/client.js +++ b/node/src/client.js @@ -40,6 +40,7 @@ const { OpenChannelUserPerm } = openlink import chat from "node-kakao/chat" const { KnownChatType } = chat +import * as modutil from "./modutil.js" import { emitLines, promisify } from "./util.js" /** @@ -581,7 +582,7 @@ export default class PeerClient { * @param {string} uuid */ async #createAuthClient(uuid) { - return await AuthApiClient.create(this.deviceName, uuid) + return await AuthApiClient.create(this.deviceName, uuid, {}, modutil.ModXVCProvider) } // TODO Wrapper for per-user commands diff --git a/node/src/modutil.js b/node/src/modutil.js new file mode 100644 index 0000000..c1ea1da --- /dev/null +++ b/node/src/modutil.js @@ -0,0 +1,28 @@ +// matrix-appservice-kakaotalk - A Matrix-KakaoTalk puppeting bridge. +// Copyright (C) 2022 Tulir Asokan, Andrew Ferrazzutti +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +import { sha512 } from "hash-wasm" +import { DefaultConfiguration } from "node-kakao" + + +DefaultConfiguration.version = "3.4.2" +DefaultConfiguration.appVersion = "3.4.2.3187" + +export const ModXVCProvider = { + toFullXVCKey(deviceUUID, userAgent, email) { + const source = `WINTER|${userAgent}|ARTHUR|${email}|${deviceUUID}` + return sha512(source) + } +} \ No newline at end of file From 73809ba087bd601be9d78e457c8dc3551ed9998c Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Tue, 6 Sep 2022 00:07:16 -0400 Subject: [PATCH 2/3] Fix import --- node/src/modutil.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/node/src/modutil.js b/node/src/modutil.js index c1ea1da..c82b4ff 100644 --- a/node/src/modutil.js +++ b/node/src/modutil.js @@ -14,7 +14,9 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . import { sha512 } from "hash-wasm" -import { DefaultConfiguration } from "node-kakao" + +import kakao from "node-kakao" +const { DefaultConfiguration } = kakao DefaultConfiguration.version = "3.4.2" From c908f0eb50082b9a32af12802247c522c3087099 Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Tue, 6 Sep 2022 00:20:59 -0400 Subject: [PATCH 3/3] Show connection failure message in bot response --- matrix_appservice_kakaotalk/user.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/matrix_appservice_kakaotalk/user.py b/matrix_appservice_kakaotalk/user.py index b693246..3500aa9 100644 --- a/matrix_appservice_kakaotalk/user.py +++ b/matrix_appservice_kakaotalk/user.py @@ -424,10 +424,10 @@ class User(DBUser, BaseUser): state_event=BridgeStateEvent.UNKNOWN_ERROR, error_code="kt-reconnection-error", ) - except Exception: + except Exception as e: self.log.exception("Error connecting to KakaoTalk") await self.send_bridge_notice( - "Failed to connect to KakaoTalk: unknown error (see logs for more details)", + f"Failed to connect to KakaoTalk: {e.message}", edit=event_id, state_event=BridgeStateEvent.UNKNOWN_ERROR, error_code="kt-reconnection-error",