From 059a7d3df06e03260427df56863190dfade7193b Mon Sep 17 00:00:00 2001 From: rcmerci Date: Mon, 27 Oct 2025 23:42:55 +0800 Subject: [PATCH] enhance(rtc,e2ee): init/reset user rsa-pair --- src/main/frontend/common/crypt.cljs | 2 + src/main/frontend/db/rtc/debug_ui.cljs | 12 ++++- src/main/frontend/worker/rtc/crypt.cljs | 54 ++++++++++++++----- .../rtc/full_upload_download_graph.cljs | 3 +- .../frontend/worker/rtc/malli_schema.cljs | 3 +- 5 files changed, 58 insertions(+), 16 deletions(-) diff --git a/src/main/frontend/common/crypt.cljs b/src/main/frontend/common/crypt.cljs index bbc19ab460..935a4966de 100644 --- a/src/main/frontend/common/crypt.cljs +++ b/src/main/frontend/common/crypt.cljs @@ -53,6 +53,7 @@ (defn keys-state diff --git a/src/main/frontend/worker/rtc/crypt.cljs b/src/main/frontend/worker/rtc/crypt.cljs index 105a846f1f..18d3bec5b2 100644 --- a/src/main/frontend/worker/rtc/crypt.cljs +++ b/src/main/frontend/worker/rtc/crypt.cljs @@ -43,7 +43,8 @@ (defn task--upload-user-rsa-key-pair "Uploads the user's RSA key pair to the server." - [get-ws-create-task user-uuid public-key encrypted-private-key] + [get-ws-create-task user-uuid public-key encrypted-private-key & {:keys [force-reset] + :or {force-reset false}}] (m/sp (let [exported-public-key-str (ldb/write-transit-str (c.m/js key-pair))) - key-pair))))))))) + (clj->js + {:public-key public-key + :encrypted-private-key encrypted-private-key}))) + {:public-key (m/? (task--import-public-key public-key)) + :encrypted-private-key (ldb/read-transit-str encrypted-private-key)}))))))))) (defn task--fetch-graph-aes-key "Fetches the AES key for a graph, from indexeddb or server. @@ -93,9 +104,9 @@ (throw (ex-info (:ex-message response) (assoc (:ex-data response) :type :rtc.exception/fetch-graph-aes-key-error))) (let [{:keys [encrypted-aes-key]} response] - (when encrypted-aes-key - (let [aes-key (c.m/