mirror of https://github.com/logseq/logseq
Fixed encrypted object key
parent
093439d69e
commit
6141d66182
|
@ -47,11 +47,9 @@
|
||||||
key)]
|
key)]
|
||||||
(gobj/get key "k")))
|
(gobj/get key "k")))
|
||||||
|
|
||||||
(defn decrypt
|
(defn get-key-from-object-key
|
||||||
[object-key encrypted]
|
[object-key]
|
||||||
;; Build the key using object-key and decrypt the content
|
(js/window.crypto.subtle.importKey
|
||||||
(let [encrypted (str->array-buffer encrypted)]
|
|
||||||
(p/let [key (js/window.crypto.subtle.importKey
|
|
||||||
"jwk"
|
"jwk"
|
||||||
(bean/->js
|
(bean/->js
|
||||||
{:k object-key
|
{:k object-key
|
||||||
|
@ -62,7 +60,13 @@
|
||||||
(bean/->js {:name "AES-GCM"
|
(bean/->js {:name "AES-GCM"
|
||||||
:length 128})
|
:length 128})
|
||||||
false
|
false
|
||||||
(bean/->js ["decrypt"]))
|
(bean/->js ["encrypt" "decrypt"])))
|
||||||
|
|
||||||
|
(defn decrypt
|
||||||
|
[object-key encrypted]
|
||||||
|
;; Build the key using object-key and decrypt the content
|
||||||
|
(let [encrypted (str->array-buffer encrypted)]
|
||||||
|
(p/let [key (get-key-from-object-key object-key)
|
||||||
decrypted (js/window.crypto.subtle.decrypt
|
decrypted (js/window.crypto.subtle.decrypt
|
||||||
(bean/->js
|
(bean/->js
|
||||||
{:name "AES-GCM"
|
{:name "AES-GCM"
|
||||||
|
|
|
@ -1105,19 +1105,21 @@
|
||||||
(defn set-github-token!
|
(defn set-github-token!
|
||||||
[token]
|
[token]
|
||||||
(state/set-github-token! token)
|
(state/set-github-token! token)
|
||||||
(p/let [key (encrypt/generate-key)
|
(let [object-key (get-in @state/state [:me :encrypt_object_key])]
|
||||||
|
(p/let [key (if object-key
|
||||||
|
(encrypt/get-key-from-object-key object-key)
|
||||||
|
(encrypt/generate-key))
|
||||||
encrypted (encrypt/encrypt key token)
|
encrypted (encrypt/encrypt key token)
|
||||||
base64-key (encrypt/base64-key key)]
|
object-key (or object-key
|
||||||
|
(encrypt/base64-key key))]
|
||||||
(state/set-encrypt-token! encrypted)
|
(state/set-encrypt-token! encrypted)
|
||||||
(util/post (str config/api "encrypt_object_key")
|
(util/post (str config/api "encrypt_object_key")
|
||||||
{:object-key base64-key}
|
{:object-key object-key}
|
||||||
(fn []
|
(fn []
|
||||||
;; refresh the browser
|
|
||||||
;; (set! (.-href js/window.location) "/")
|
|
||||||
(let [me (:me @state/state)]
|
(let [me (:me @state/state)]
|
||||||
(when (:repos me)
|
(when (:repos me)
|
||||||
(clone-and-pull-repos me))))
|
(clone-and-pull-repos me))))
|
||||||
(fn [_e]))))
|
(fn [_e])))))
|
||||||
|
|
||||||
(defn start!
|
(defn start!
|
||||||
[render]
|
[render]
|
||||||
|
@ -1129,10 +1131,10 @@
|
||||||
(when me (set-state-kv! :me me))
|
(when me (set-state-kv! :me me))
|
||||||
(render)
|
(render)
|
||||||
(when me
|
(when me
|
||||||
(when-let [base64-key (:encrypt_object_key me)]
|
(when-let [object-key (:encrypt_object_key me)]
|
||||||
(when-let [encrypted-token (state/get-encrypted-token)]
|
(when-let [encrypted-token (state/get-encrypted-token)]
|
||||||
(->
|
(->
|
||||||
(p/let [token (encrypt/decrypt base64-key encrypted-token)]
|
(p/let [token (encrypt/decrypt object-key encrypted-token)]
|
||||||
;; FIXME: Sometimes it has spaces in the front
|
;; FIXME: Sometimes it has spaces in the front
|
||||||
(let [token (string/trim token)]
|
(let [token (string/trim token)]
|
||||||
(state/set-github-token! token)
|
(state/set-github-token! token)
|
||||||
|
|
Loading…
Reference in New Issue