encrypt.cljs 729 B

1234567891011121314151617181920
  1. (ns frontend.encrypt
  2. "Encryption related fns for use with encryption feature and file sync"
  3. (:require [electron.ipc :as ipc]
  4. [frontend.util :as util]
  5. [logseq.graph-parser.utf8 :as utf8]
  6. [promesa.core :as p]))
  7. (defn encrypt-with-passphrase
  8. [passphrase content]
  9. (when (util/electron?)
  10. (p/let [raw-content (utf8/encode content)
  11. encrypted (ipc/ipc "encrypt-with-passphrase" passphrase raw-content)]
  12. (utf8/decode encrypted))))
  13. (defn decrypt-with-passphrase
  14. [passphrase content]
  15. (when (util/electron?)
  16. (p/let [raw-content (utf8/encode content)
  17. decrypted (ipc/ipc "decrypt-with-passphrase" passphrase raw-content)]
  18. (utf8/decode decrypted))))