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