mirror of
https://github.com/logseq/logseq.git
synced 2026-05-28 06:34:34 +00:00
fix(rtc): remove test encrypt-key
This commit is contained in:
@@ -480,8 +480,9 @@
|
||||
other-remote-ops)]
|
||||
(when-let [ops-for-remote (rtc-schema/to-ws-ops-decoder remote-ops)]
|
||||
(let [local-tx (client-op/get-local-tx repo)
|
||||
encrypt-key-for-test (c.m/<? (rtc-encrypt/<salt+password->key (ldb/get-key-value @conn :logseq.kv/graph-rtc-encrypt-salt) "test-password"))
|
||||
encrypted-remote-ops (m/? (task--encrypt-remote-ops encrypt-key-for-test ops-for-remote))
|
||||
encrypt-key (c.m/<? (rtc-encrypt/<get-encrypt-key repo))
|
||||
_ (assert (some? encrypt-key))
|
||||
encrypted-remote-ops (m/? (task--encrypt-remote-ops encrypt-key ops-for-remote))
|
||||
r (try
|
||||
(let [message (cond-> {:action "apply-ops"
|
||||
:graph-uuid graph-uuid :schema-version (str major-schema-version)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
(ns frontend.worker.rtc.encrypt
|
||||
"rtc e2ee related"
|
||||
(:require ["/frontend/idbkv" :as idb-keyval]
|
||||
[frontend.common.thread-api :as thread-api :refer [def-thread-api]]
|
||||
[logseq.db :as ldb]
|
||||
[promesa.core :as p]))
|
||||
|
||||
@@ -26,22 +27,22 @@
|
||||
(idb-keyval/del k @store))
|
||||
|
||||
(defn- graph-encrypt-key-idb-key
|
||||
[graph-uuid]
|
||||
(assert (some? graph-uuid))
|
||||
(str "rtc-encrypt-key###" graph-uuid))
|
||||
[repo]
|
||||
(assert (some? repo))
|
||||
(str "rtc-encrypt-key###" repo))
|
||||
|
||||
(defn <get-encrypt-key
|
||||
[graph-uuid]
|
||||
(<get-item (graph-encrypt-key-idb-key graph-uuid)))
|
||||
[repo]
|
||||
(<get-item (graph-encrypt-key-idb-key repo)))
|
||||
|
||||
(defn <set-encrypt-key!
|
||||
[graph-uuid k]
|
||||
[repo k]
|
||||
(assert (instance? js/CryptoKey k))
|
||||
(<set-item! (graph-encrypt-key-idb-key graph-uuid) k))
|
||||
(<set-item! (graph-encrypt-key-idb-key repo) k))
|
||||
|
||||
(defn <remove-encrypt-key!
|
||||
[graph-uuid]
|
||||
(<remove-item! (graph-encrypt-key-idb-key graph-uuid)))
|
||||
[repo]
|
||||
(<remove-item! (graph-encrypt-key-idb-key repo)))
|
||||
|
||||
(defn- array-buffer->base64 [buffer]
|
||||
(let [binary (apply str (map js/String.fromCharCode (js/Uint8Array. buffer)))]
|
||||
@@ -151,6 +152,14 @@
|
||||
m)))
|
||||
(p/promise m) encrypt-attr-set))
|
||||
|
||||
(def-thread-api :thread-api/generate&persist-encrypt-key
|
||||
[repo salt password]
|
||||
(p/let [encrypt-key (<salt+password->key salt password)
|
||||
encrypt-key' (<get-encrypt-key repo)
|
||||
_ (assert (nil? encrypt-key'))
|
||||
_ (<set-encrypt-key! repo encrypt-key)]
|
||||
nil))
|
||||
|
||||
(comment
|
||||
(->
|
||||
(p/let [salt (js/crypto.getRandomValues (js/Uint8Array. 16))
|
||||
|
||||
@@ -159,8 +159,9 @@
|
||||
@conn
|
||||
:ignore-attr-set rtc-const/ignore-attrs-when-init-upload
|
||||
:ignore-entity-set rtc-const/ignore-entities-when-init-upload)
|
||||
encrypt-key-for-test (c.m/<? (rtc-encrypt/<salt+password->key (ldb/get-key-value @conn :logseq.kv/graph-rtc-encrypt-salt) "test-password"))
|
||||
encrypted-blocks (c.m/<? (task--encrypt-blocks encrypt-key-for-test rtc-const/encrypt-attr-set all-blocks))]
|
||||
encrypt-key (c.m/<? (rtc-encrypt/<get-encrypt-key repo))
|
||||
_ (assert (some? encrypt-key))
|
||||
encrypted-blocks (c.m/<? (task--encrypt-blocks encrypt-key rtc-const/encrypt-attr-set all-blocks))]
|
||||
(ldb/write-transit-str encrypted-blocks)))))]
|
||||
(rtc-log-and-state/rtc-log :rtc.log/upload {:sub-type :upload-data
|
||||
:message "uploading data"})
|
||||
|
||||
@@ -659,17 +659,12 @@ so need to pull earlier remote-data from websocket."})
|
||||
(defn task--apply-remote-update
|
||||
"Apply remote-update(`remote-update-event`)"
|
||||
[graph-uuid repo conn date-formatter remote-update-event add-log-fn]
|
||||
;; Re apply-remote-update-check to ensure the remote-update-event still passes the check,
|
||||
;; Because asynchronous functions may have been executed between the previous check and the current apply-remote-update.
|
||||
(m/sp
|
||||
(when (apply-remote-update-check repo remote-update-event add-log-fn)
|
||||
(let [remote-update-data (:value remote-update-event)
|
||||
encrypt-key-for-test
|
||||
(c.m/<? (rtc-encrypt/<salt+password->key
|
||||
(ldb/get-key-value @conn :logseq.kv/graph-rtc-encrypt-salt)
|
||||
"test-password"))
|
||||
encrypt-key (c.m/<? (rtc-encrypt/<get-encrypt-key repo))
|
||||
remote-update-data (m/? (task--decrypt-blocks-in-remote-update-data
|
||||
encrypt-key-for-test rtc-const/encrypt-attr-set
|
||||
encrypt-key rtc-const/encrypt-attr-set
|
||||
remote-update-data))
|
||||
remote-t (:t remote-update-data)
|
||||
{affected-blocks-map :affected-blocks refed-blocks :refed-blocks} remote-update-data
|
||||
|
||||
Reference in New Issue
Block a user