func (r *readerStream) XORKeyStream(dst, src []byte) {
	l := len(src)
	if len(dst) < l {
		panic("dst too short")
	}
	buffKey := make([]byte, 32)
	_, err := io.ReadFull(r, buffKey)
	if err != nil {
		panic("reader failed")
	}
	for i := 0; i < l; i++ {
		dst[i] = src[i] ^ buffKey[i]
	}
}
XORKeyStream implements cipher.Stream.XORKeyStream.
package gopaque
import (
	"encoding"
	"io"
	"go.dedis.ch/kyber/v3"
)
func toBytes(s encoding.BinaryMarshaler) []byte {
	b, err := s.MarshalBinary()
	if err != nil {
		panic(err)
	}
	return b
}
func pubKey(c Crypto, priv kyber.Scalar) kyber.Point {
	return c.Point().Mul(priv, nil)
}
type readerStream struct {
	io.Reader
}