// +build none package build import ( "bytes" "encoding/base64" "golang.org/x/crypto/openpgp" "golang.org/x/crypto/openpgp/armor" ) // GenerateEncodedPGPKeyPair generate base64 encoded PGP key pair func GenerateEncodedPGPKeyPair(name, comment, email string) (string, error) { var e *openpgp.Entity e, err := openpgp.NewEntity(name, comment, email, nil) if err != nil { return "", err } keyBuffer := bytes.Buffer{} w, err := armor.Encode(&keyBuffer, openpgp.PrivateKeyType, nil) if err != nil { return "", err } err = e.SerializePrivate(w, nil) if err != nil { return "", err } w.Close() base64Buffer := bytes.Buffer{} en := base64.NewEncoder(base64.StdEncoding, &base64Buffer) en.Write(keyBuffer.Bytes()) en.Close() return base64Buffer.String(), nil }