identity.mx raw
1 package main
2
3 import (
4 "smesh.lol/web/common/helpers"
5 "smesh.lol/web/common/jsbridge/schnorr"
6 "smesh.lol/web/common/nostr"
7 )
8
9 // Identity: key management and signing.
10
11 var (
12 seckey [32]byte
13 hasKey bool
14 myPubkey string
15 )
16
17 func identitySetKey(hexKey string) {
18 seckey = hexTo32(hexKey)
19 hasKey = true
20 pk, ok := schnorr.PubKeyFromSecKey(seckey[:])
21 if ok {
22 myPubkey = helpers.HexEncode(pk)
23 }
24 }
25
26 func identitySetPubkey(hex string) {
27 myPubkey = hex
28 }
29
30 func identityClearKey() {
31 seckey = [32]byte{}
32 hasKey = false
33 myPubkey = ""
34 }
35
36 func identitySignEvent(ev *nostr.Event) bool {
37 if !hasKey {
38 return false
39 }
40 aux := random32()
41 return ev.Sign(seckey, aux)
42 }
43