aboutsummaryrefslogtreecommitdiffstats
path: root/build/utils.go
diff options
context:
space:
mode:
Diffstat (limited to 'build/utils.go')
-rw-r--r--build/utils.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/build/utils.go b/build/utils.go
new file mode 100644
index 000000000..df869efd0
--- /dev/null
+++ b/build/utils.go
@@ -0,0 +1,39 @@
+// +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
+}