aboutsummaryrefslogtreecommitdiff
path: root/generate.go
diff options
context:
space:
mode:
Diffstat (limited to 'generate.go')
-rw-r--r--generate.go34
1 files changed, 11 insertions, 23 deletions
diff --git a/generate.go b/generate.go
index 58b35cb..0b0cf49 100644
--- a/generate.go
+++ b/generate.go
@@ -2,7 +2,6 @@ package main
import (
"flag"
- "fmt"
"os"
"dim13.org/signify/ask"
@@ -25,47 +24,36 @@ func generate() error {
args.Usage()
return nil
}
-
- if err := file.Names(*pubFile, *encFile); err != nil {
+ if err := file.CheckNames(*pubFile, *encFile); err != nil {
return err
}
-
pubKey, encKey, err := key.NewKey()
if err != nil {
return err
}
-
if *nopass {
encKey.KDFRounds = 0
}
if err := Kdf(encKey, ask.Confirmed); err != nil {
return err
}
-
- encRaw, err := key.Marshal(encKey)
- if err != nil {
+ if err := writeFile(*encFile, *comment+" secret key", encKey, file.EncMode); err != nil {
return err
}
-
- block := &file.Block{
- Comment: fmt.Sprintf("%s secret key", *comment),
- Bytes: encRaw,
- }
- if err := file.EncodeFile(*encFile, file.EncMode, block); err != nil {
+ if err := writeFile(*pubFile, *comment+" public key", pubKey, file.PubMode); err != nil {
return err
}
+ return nil
+}
- pubRaw, err := key.Marshal(pubKey)
+func writeFile(fname, comment string, v interface{}, mode os.FileMode) error {
+ raw, err := key.Marshal(v)
if err != nil {
return err
}
- block = &file.Block{
- Comment: fmt.Sprintf("%s public key", *comment),
- Bytes: pubRaw,
- }
- if err := file.EncodeFile(*pubFile, file.PubMode, block); err != nil {
- return err
+ block := &file.Block{
+ Comment: comment,
+ Bytes: raw,
}
-
- return nil
+ return file.EncodeFile(fname, mode, block)
}