aboutsummaryrefslogtreecommitdiffstats
path: root/internal/build/pgp.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/build/pgp.go')
-rw-r--r--internal/build/pgp.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/build/pgp.go b/internal/build/pgp.go
index 79ab9c06f..c7d0d2339 100644
--- a/internal/build/pgp.go
+++ b/internal/build/pgp.go
@@ -57,3 +57,15 @@ func PGPSignFile(input string, output string, pgpkey string) error {
// Generate the signature and return
return openpgp.ArmoredDetachSign(out, keys[0], in, nil)
}
+
+// PGPKeyID parses an armored key and returns the key ID.
+func PGPKeyID(pgpkey string) (string, error) {
+ keys, err := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(pgpkey))
+ if err != nil {
+ return "", err
+ }
+ if len(keys) != 1 {
+ return "", fmt.Errorf("key count mismatch: have %d, want %d", len(keys), 1)
+ }
+ return keys[0].PrimaryKey.KeyIdString(), nil
+}