aboutsummaryrefslogtreecommitdiff
path: root/create_public_key.go
diff options
context:
space:
mode:
Diffstat (limited to 'create_public_key.go')
-rw-r--r--create_public_key.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/create_public_key.go b/create_public_key.go
new file mode 100644
index 0000000..93c0677
--- /dev/null
+++ b/create_public_key.go
@@ -0,0 +1,26 @@
+package main
+
+import (
+ "flag"
+)
+
+func CreatePublicKey(args []string) error {
+ fs := flag.NewFlagSet("pkictl create-public-key", flag.ExitOnError)
+ flagPrivate := fs.String("private-key", "", "path to the private key or read from stdin")
+ flagOutput := fs.String("output", "stdout", "write private key to file")
+ fs.Parse(args)
+
+ pk, err := loadPrivateKey(*flagPrivate)
+ if err != nil {
+ return err
+ }
+
+ out, err := openOutput(*flagOutput)
+ if err != nil {
+ return err
+ }
+ defer out.Close()
+
+ pub := pk.Public()
+ return writePem(pub, out)
+}