summaryrefslogtreecommitdiff
path: root/backupdesk/lib/nostr.hoon
blob: 7cb719bd9e3f866d9b7b91bed634fb31a6263cf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/-  sur=nostr
/+  js=json-nostr, sr=sortug
|%
++  gen-sub-id  |=  eny=@  ^-  @t
  %-  crip  (scag 60 (scow:sr %uw eny))
++  gen-keys  |=  eny=@  ^-  keys:sur
  =,  secp256k1:secp:crypto
  =/  privkey
  |-  
    =/  k  (~(rad og eny) (bex 256))
    ?.  (lth k n.t)  $  k

  =/  pubkey  (priv-to-pub privkey)
  =/  pub  (compress-point pubkey)
  :: =/  pub  (serialize-point pubkey)
  [pub=pub priv=privkey]
::
++  hash-event  |=  raw=raw-event:sur  ^-  @ux
  =/  jon  (raw-event:en:js raw)
  =/  jstring  (en:json:html jon)
  (swp 3 (shax jstring))

++  raws
  |=  [eny=@ bits=@]
  ^-  [@ @]
  [- +>-]:(~(raws og eny) bits)

++  sign-event  |=  [priv=@ux hash=@ux eny=@]
  =^  sed  eny  (raws eny 256)
  (sign:schnorr:secp256k1:secp:crypto priv hash sed)
--