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