Cloak/cmd/keygen/keygen.go

34 lines
648 B
Go

package main
import (
"crypto/rand"
"encoding/base64"
"flag"
"fmt"
ecdh "github.com/cbeuw/go-ecdh"
)
var b64 = base64.StdEncoding.EncodeToString
func main() {
var isUID *bool
var isKeypair *bool
isUID = flag.Bool("u", false, "Generate UID")
isKeypair = flag.Bool("k", false, "Generate a key pair")
flag.Parse()
if *isUID {
UID := make([]byte, 32)
rand.Read(UID)
fmt.Printf(b64(UID))
} else if *isKeypair {
ec := ecdh.NewCurve25519ECDH()
staticPv, staticPub, _ := ec.GenerateKey(rand.Reader)
marshPub := ec.Marshal(staticPub)
marshPv := staticPv.(*[32]byte)[:]
fmt.Printf("%v,%v", b64(marshPub), b64(marshPv))
}
}