| 123456789101112131415161718192021222324 |
- package util
- import (
- "crypto/rand"
- "encoding/base64"
- "golang.org/x/crypto/curve25519"
- )
- // GenerateWireguardKeypair generates a base64 encoded private and public key pair for Wireguard.
- func GenerateWireguardKeypair() (privateKey string, publicKey string, err error) {
- var priv [32]byte
- if _, err := rand.Read(priv[:]); err != nil {
- return "", "", err
- }
- priv[0] &= 248
- priv[31] &= 127
- priv[31] |= 64
- var pub [32]byte
- curve25519.ScalarBaseMult(&pub, &priv)
- return base64.StdEncoding.EncodeToString(priv[:]), base64.StdEncoding.EncodeToString(pub[:]), nil
- }
|