main.go raw

   1  package main
   2  
   3  import (
   4  	"common/crypto/secp256k1"
   5  	"common/crypto/sha256"
   6  	"common/helpers"
   7  )
   8  
   9  func main() {
  10  	seckey, _ := helpers.HexDecode32("0000000000000000000000000000000000000000000000000000000000000003")
  11  	pubkey, _ := secp256k1.PubKeyFromSecKey(seckey)
  12  	println("pubkey: " + helpers.HexEncode(pubkey[:]))
  13  
  14  	msg := sha256.Sum([]byte("hello nostr"))
  15  	aux := sha256.Sum([]byte("aux randomness"))
  16  
  17  	sig, ok := secp256k1.SignSchnorr(seckey, msg, aux)
  18  	if !ok {
  19  		println("sign: FAIL")
  20  		return
  21  	}
  22  	if secp256k1.VerifySchnorr(pubkey, msg, sig) {
  23  		println("verify: pass")
  24  	} else {
  25  		println("verify: FAIL")
  26  	}
  27  
  28  	println("signing 100x...")
  29  	for i := 0; i < 100; i++ {
  30  		msg[0] = byte(i)
  31  		secp256k1.SignSchnorr(seckey, msg, aux)
  32  	}
  33  	println("sign done")
  34  
  35  	msg[0] = 42
  36  	sig, _ = secp256k1.SignSchnorr(seckey, msg, aux)
  37  	println("verifying 100x...")
  38  	for i := 0; i < 100; i++ {
  39  		secp256k1.VerifySchnorr(pubkey, msg, sig)
  40  	}
  41  	println("verify done")
  42  }
  43