func prf(hash, key, data []byte) {
	keyedHashSum(hash, key, data, 0x03)
}
prf estimates keyed hash for input (padding03||key||data)
package winternitz
import (
	"errors"
	"golang.org/x/crypto/sha3"
)
var paddings [][]byte
func init() {
	paddings = make([][]byte, 4)
	for i := range paddings {
		paddings[i] = make([]byte, SecurityLevel)
		paddings[i][SecurityLevel-1] = byte(i)
	}
}
func keyedHashSum(hash, key, data []byte, paddingType int) error {
	if paddingType >= len(paddings) {
		return errors.New("invalid paddingType")
	}
	sh := sha3.NewShake256()
	sh.Write(paddings[paddingType])
	sh.Write(key)
	sh.Write(data)
	sh.Read(hash)
	return nil
}
func fSum(hash, key, data []byte) {
	keyedHashSum(hash, key, data, 0x00)
}