mirror of https://github.com/cbeuw/Cloak
34 lines
648 B
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))
|
|
|
|
}
|
|
}
|