func GenerateKey(rand io.Reader) (publicKey, privateKey *[32]byte, err error) {
	publicKey = new([32]byte)
	privateKey = new([32]byte)
	_, err = io.ReadFull(rand, privateKey[:])
	if err != nil {
		publicKey = nil
		privateKey = nil
		return
	}
	curve25519.ScalarBaseMult(publicKey, privateKey)
	return
}
GenerateKey generates a new public/private key pair suitable for use with
Seal and Open.
package box
import (
	"io"
	"golang.org/x/crypto/curve25519"
	"golang.org/x/crypto/nacl/secretbox"
	"golang.org/x/crypto/salsa20/salsa"
)
const Overhead = secretbox.Overhead