aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-02-13 01:36:30 +0100
committerDimitri Sokolyuk <demon@dim13.org>2018-02-13 01:36:30 +0100
commit24f20fed452b62cccad07a7a6468710691fee994 (patch)
tree97015bda8c581e86363f83bad6a788b497860eb0
parent8bb62c061174bc9098d7ccf1b6772783f1336ba9 (diff)
cleanup
-rw-r--r--cmd_generate.go8
-rw-r--r--cmd_sign.go60
-rw-r--r--cmd_verify.go68
3 files changed, 64 insertions, 72 deletions
diff --git a/cmd_generate.go b/cmd_generate.go
index 74c24e5..3d0e826 100644
--- a/cmd_generate.go
+++ b/cmd_generate.go
@@ -56,11 +56,11 @@ func (g *generateCommand) Execute(ctx context.Context, f *flag.FlagSet, args ...
return subcommands.ExitFailure
}
- if err := writeFile(g.secFile, g.comment+" secret key", secKey, ModeSec); err != nil {
+ if err := g.writeFile(g.secFile, "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 {
+ if err := g.writeFile(g.pubFile, "public key", pubKey, ModePub); err != nil {
log.Println(err)
return subcommands.ExitFailure
}
@@ -68,11 +68,11 @@ func (g *generateCommand) Execute(ctx context.Context, f *flag.FlagSet, args ...
return subcommands.ExitSuccess
}
-func writeFile(fname, comment string, u encoding.BinaryMarshaler, mode os.FileMode) error {
+func (g *generateCommand) 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)
+ return b64file.Encode(fd, u, g.comment+" "+comment, nil)
}
diff --git a/cmd_sign.go b/cmd_sign.go
index 91b58ea..5d3f6df 100644
--- a/cmd_sign.go
+++ b/cmd_sign.go
@@ -16,11 +16,11 @@ import (
// Usage: signify -S [-ez] [-x sigfile] -s seckey -m message
type signCommand struct {
- embedded bool
- zip bool
- sigFile string
- secFile string
- msgFile string
+ embed bool
+ zip bool
+ sigFile string
+ secFile string
+ msgFile string
}
func (s *signCommand) Name() string { return "sign" }
@@ -30,7 +30,7 @@ func (s *signCommand) Usage() string {
}
func (s *signCommand) SetFlags(f *flag.FlagSet) {
- f.BoolVar(&s.embedded, "e", false, "embed the message")
+ f.BoolVar(&s.embed, "e", false, "embed the message")
f.BoolVar(&s.zip, "z", false, "sign gzip archive") // TODO
f.StringVar(&s.sigFile, "x", "", "signature file")
f.StringVar(&s.secFile, "s", "", "secret file (required)")
@@ -46,41 +46,37 @@ func (s *signCommand) Execute(ctx context.Context, f *flag.FlagSet, args ...inte
s.sigFile = SigName(s.msgFile)
}
+ var err error
switch {
- case s.zip && s.embedded:
+ case s.zip && s.embed:
return subcommands.ExitUsageError
case s.zip:
- if err := signGzip(s.secFile, s.msgFile, s.sigFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
- case s.embedded:
- if err := signEmbedded(s.secFile, s.msgFile, s.sigFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
+ err = s.zipped()
+ case s.embed:
+ err = s.embedded()
default:
- if err := signPlain(s.secFile, s.msgFile, s.sigFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
+ err = s.plain()
+ }
+ if err != nil {
+ log.Println(err)
+ return subcommands.ExitFailure
}
return subcommands.ExitSuccess
}
-func signPlain(secFile, msgFile, sigFile string) error {
- sec, err := openSec(secFile)
+func (s *signCommand) plain() error {
+ sec, err := openSec(s.secFile)
if err != nil {
return err
}
- msg, err := ioutil.ReadFile(msgFile)
+ msg, err := ioutil.ReadFile(s.msgFile)
if err != nil {
return err
}
sig := sec.Sign(msg)
- comment := VerifyWith(secFile)
- fd, err := Create(sigFile, ModeSig)
+ comment := VerifyWith(s.secFile)
+ fd, err := Create(s.sigFile, ModeSig)
if err != nil {
return err
}
@@ -88,18 +84,18 @@ func signPlain(secFile, msgFile, sigFile string) error {
return b64file.Encode(fd, sig, comment, nil)
}
-func signEmbedded(secFile, msgFile, sigFile string) error {
- sec, err := openSec(secFile)
+func (s *signCommand) embedded() error {
+ sec, err := openSec(s.secFile)
if err != nil {
return err
}
- msg, err := ioutil.ReadFile(msgFile)
+ msg, err := ioutil.ReadFile(s.msgFile)
if err != nil {
return err
}
sig := sec.Sign(msg)
- comment := VerifyWith(secFile)
- fd, err := Create(sigFile, ModeSig)
+ comment := VerifyWith(s.secFile)
+ fd, err := Create(s.sigFile, ModeSig)
if err != nil {
return err
}
@@ -108,8 +104,8 @@ func signEmbedded(secFile, msgFile, sigFile string) error {
}
// TODO
-func signGzip(secFile, msgFile, sigFile string) error {
- fd, err := Open(msgFile)
+func (s *signCommand) zipped() error {
+ fd, err := Open(s.msgFile)
if err != nil {
return err
}
diff --git a/cmd_verify.go b/cmd_verify.go
index c38955d..bd23970 100644
--- a/cmd_verify.go
+++ b/cmd_verify.go
@@ -17,13 +17,13 @@ import (
// Usage: signify -V [-eqz] [-p pubkey] [-t keytype] [-x sigfile] -m message
type verifyCommand struct {
- embedded bool
- quiet bool
- zip bool
- pubFile string
- keyFile string
- sigFile string
- msgFile string
+ embed bool
+ quiet bool
+ zip bool
+ pubFile string
+ keyFile string
+ sigFile string
+ msgFile string
}
func (v *verifyCommand) Name() string { return "verify" }
@@ -33,7 +33,7 @@ func (v *verifyCommand) Usage() string {
}
func (v *verifyCommand) SetFlags(f *flag.FlagSet) {
- f.BoolVar(&v.embedded, "e", false, "embed message")
+ f.BoolVar(&v.embed, "e", false, "embed message")
f.BoolVar(&v.quiet, "q", false, "quiet mode")
f.BoolVar(&v.zip, "z", false, "verify gzip archive") // TODO
f.StringVar(&v.pubFile, "p", "", "public key file")
@@ -52,24 +52,20 @@ func (v *verifyCommand) Execute(ctx context.Context, f *flag.FlagSet, args ...in
}
// TODO keyType
+ var err error
switch {
- case v.zip && v.embedded:
+ case v.zip && v.embed:
return subcommands.ExitUsageError
case v.zip:
- if err := verifyGzip(v.pubFile, v.sigFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
- case v.embedded:
- if err := verifyEmbedded(v.pubFile, v.sigFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
+ err = v.zipped()
+ case v.embed:
+ err = v.embedded()
default:
- if err := verifyPlain(v.pubFile, v.sigFile, v.msgFile); err != nil {
- log.Println(err)
- return subcommands.ExitFailure
- }
+ err = v.plain()
+ }
+ if err != nil {
+ log.Println(err)
+ return subcommands.ExitFailure
}
if !v.quiet {
fmt.Println("Signature Verified")
@@ -77,34 +73,34 @@ func (v *verifyCommand) Execute(ctx context.Context, f *flag.FlagSet, args ...in
return subcommands.ExitSuccess
}
-func verifyPlain(pubFile, sigFile, msgFile string) error {
- msg, err := ioutil.ReadFile(msgFile)
+func (v *verifyCommand) plain() error {
+ msg, err := ioutil.ReadFile(v.msgFile)
if err != nil {
return err
}
- sig, _, verifyWith, err := openSig(sigFile)
+ sig, _, verifyWith, err := openSig(v.sigFile)
if err != nil {
return err
}
- if pubFile == "" {
- pubFile = verifyWith
+ if v.pubFile == "" {
+ v.pubFile = verifyWith
}
- pub, err := openPub(pubFile)
+ pub, err := openPub(v.pubFile)
if err != nil {
return err
}
return sig.Verify(msg, pub)
}
-func verifyEmbedded(pubFile, sigFile string) error {
- sig, msg, verifyWith, err := openSig(sigFile)
+func (v *verifyCommand) embedded() error {
+ sig, msg, verifyWith, err := openSig(v.sigFile)
if err != nil {
return err
}
- if pubFile == "" {
- pubFile = verifyWith
+ if v.pubFile == "" {
+ v.pubFile = verifyWith
}
- pub, err := openPub(pubFile)
+ pub, err := openPub(v.pubFile)
if err != nil {
return err
}
@@ -112,8 +108,8 @@ func verifyEmbedded(pubFile, sigFile string) error {
}
// TODO ugly work-in-progress
-func verifyGzip(pubFile, sigFile string) error {
- fd, err := Open(sigFile)
+func (v *verifyCommand) zipped() error {
+ fd, err := Open(v.sigFile)
if err != nil {
return err
}
@@ -132,7 +128,7 @@ func verifyGzip(pubFile, sigFile string) error {
return err
}
- pub, err := openPub(pubFile)
+ pub, err := openPub(v.pubFile)
if err != nil {
return err
}