aboutsummaryrefslogtreecommitdiff
path: root/generate.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-02-13 01:22:10 +0100
committerDimitri Sokolyuk <demon@dim13.org>2018-02-13 01:22:10 +0100
commit8bb62c061174bc9098d7ccf1b6772783f1336ba9 (patch)
treebc2bcddefe55e52b931924664617b0df5b1f9e48 /generate.go
parentc32d9bf24c3b670c3a56ea55aeefb6232f3d4ec8 (diff)
combine
Diffstat (limited to 'generate.go')
-rw-r--r--generate.go78
1 files changed, 0 insertions, 78 deletions
diff --git a/generate.go b/generate.go
deleted file mode 100644
index 74c24e5..0000000
--- a/generate.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package main
-
-import (
- "context"
- "encoding"
- "flag"
- "log"
- "os"
-
- "dim13.org/signify/ask"
- "dim13.org/signify/b64file"
- "dim13.org/signify/key"
- "github.com/google/subcommands"
-)
-
-// Usage: signify -G [-n] [-c comment] -p pubkey -s seckey
-
-type generateCommand struct {
- nopass bool
- comment string
- pubFile string
- secFile string
-}
-
-func (g *generateCommand) Name() string { return "generate" }
-func (g *generateCommand) Synopsis() string { return "generate key" }
-func (g *generateCommand) Usage() string {
- return "generate [-n] [-c comment] -p pubkey -s seckey\n"
-}
-
-func (g *generateCommand) SetFlags(f *flag.FlagSet) {
- f.BoolVar(&g.nopass, "n", false, "no key passphrase")
- f.StringVar(&g.comment, "c", "signify", "comment")
- f.StringVar(&g.pubFile, "p", "", "public key file (required)")
- f.StringVar(&g.secFile, "s", "", "secret key file (required)")
-}
-
-func (g *generateCommand) Execute(ctx context.Context, f *flag.FlagSet, args ...interface{}) subcommands.ExitStatus {
- if g.pubFile == "" || g.secFile == "" {
- f.Usage()
- return subcommands.ExitUsageError
- }
- if err := ValidateNames(g.pubFile, g.secFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
-
- var der key.Deriver
- if !g.nopass {
- der = ask.Confirmed{}
- }
-
- pubKey, secKey, err := key.Generate(der)
- if err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
-
- if err := writeFile(g.secFile, g.comment+" secret key", secKey, ModeSec); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
- if err := writeFile(g.pubFile, g.comment+" public key", pubKey, ModePub); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
-
- return subcommands.ExitSuccess
-}
-
-func writeFile(fname, comment string, u encoding.BinaryMarshaler, mode os.FileMode) error {
- fd, err := Create(fname, mode)
- if err != nil {
- return err
- }
- defer fd.Close()
- return b64file.Encode(fd, u, comment, nil)
-}