func Example_signMessage() {
	pkBytes, err := hex.DecodeString("22a47fa09a223f2aa079edf85a7c2d4f87" +
		"20ee63e502ee2869afab7de234b80c")
	if err != nil {
		fmt.Println(err)
		return
	}
	privKey, pubKey := soterec.PrivKeyFromBytes(soterec.S256(), pkBytes)
	message := "test message"
	messageHash := chainhash.DoubleHashB([]byte(message))
	signature, err := privKey.Sign(messageHash)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Printf("Serialized Signature: %x\n", signature.Serialize())
	verified := signature.Verify(messageHash, pubKey)
	fmt.Printf("Signature Verified? %v\n", verified)
}
This example demonstrates signing a message with a secp256k1 private key that
is first parsed form raw bytes and serializing the generated signature.
package soterec_test
import (
	"encoding/hex"
	"fmt"
	"github.com/soteria-dag/soterd/soterec"
	"github.com/soteria-dag/soterd/chaincfg/chainhash"
)