aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--file/names.go4
-rw-r--r--file/names_test.go4
-rw-r--r--generate.go34
3 files changed, 15 insertions, 27 deletions
diff --git a/file/names.go b/file/names.go
index 3835bbd..15e480e 100644
--- a/file/names.go
+++ b/file/names.go
@@ -13,7 +13,7 @@ var ErrNames = errors.New("please use naming scheme of keyname.pub and keyname.s
const (
PubExt = ".pub"
- EncExt = ".enc"
+ EncExt = ".sec"
SigExt = ".sig"
)
@@ -23,7 +23,7 @@ func splitNameExt(fname string) (string, string) {
return file[:len(file)-len(ext)], ext
}
-func Names(pubFile, encFile string) error {
+func CheckNames(pubFile, encFile string) error {
pubName, pubExt := splitNameExt(pubFile)
encName, encExt := splitNameExt(encFile)
if pubExt != PubExt || encExt != EncExt || pubName != encName {
diff --git a/file/names_test.go b/file/names_test.go
index 38e374d..b6a28c0 100644
--- a/file/names_test.go
+++ b/file/names_test.go
@@ -2,7 +2,7 @@ package file
import "testing"
-func TestNames(t *testing.T) {
+func TestCheckNames(t *testing.T) {
testCases := []struct {
pub, sec string
err error
@@ -15,7 +15,7 @@ func TestNames(t *testing.T) {
}
for _, tc := range testCases {
t.Run(tc.pub+"+"+tc.sec, func(t *testing.T) {
- err := Names(tc.pub, tc.sec)
+ err := CheckNames(tc.pub, tc.sec)
if err != tc.err {
t.Errorf("got %v, want %v", err, tc.err)
}
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)
}