2017-07-16 09:04:35 +00:00
|
|
|
(ns status-im.protocol.encryption
|
|
|
|
(:require [status-im.js-dependencies :as dependencies]))
|
2016-09-04 15:39:05 +00:00
|
|
|
|
|
|
|
(def default-curve 384)
|
|
|
|
|
|
|
|
(defn new-keypair!
|
|
|
|
"Returns {:private \"private key\" :public \"public key\""
|
|
|
|
[]
|
|
|
|
(let [{:keys [enc dec]}
|
2017-07-16 09:04:35 +00:00
|
|
|
(-> dependencies/eccjs
|
|
|
|
(.generate (.-ENC_DEC dependencies/eccjs) default-curve)
|
2016-09-04 15:39:05 +00:00
|
|
|
(js->clj :keywordize-keys true))]
|
|
|
|
{:private dec
|
|
|
|
:public enc}))
|
|
|
|
|
|
|
|
(defn encrypt [public-key content]
|
2017-07-16 09:04:35 +00:00
|
|
|
(.encrypt dependencies/eccjs public-key content))
|
2016-09-04 15:39:05 +00:00
|
|
|
|
|
|
|
(defn decrypt [private-key content]
|
2017-07-16 09:04:35 +00:00
|
|
|
(.decrypt dependencies/eccjs private-key content))
|
2016-09-04 15:39:05 +00:00
|
|
|
|