func GenerateSharedSecret(priv, pub [32]byte) []byte {
	var secret [32]byte
	curve25519.ScalarMult(&secret, &priv, &pub)
	return secret[:]
}
/*
GenerateSharedSecret generates the shared secret with a given public private key pair.
package curve25519
import (
	"crypto/rand"
	"golang.org/x/crypto/curve25519"
	"io"
)
func GenerateKey() (privateKey *[32]byte, publicKey *[32]byte, err error) {
	var pub, priv [32]byte
	_, err = io.ReadFull(rand.Reader, priv[:])
	if err != nil {
		return nil, nil, err
	}
	priv[0] &= 248
	priv[31] &= 127
	priv[31] |= 64
	curve25519.ScalarBaseMult(&pub, &priv)
	return &priv, &pub, nil
}