aboutsummaryrefslogtreecommitdiff
path: root/cmd_sign.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd_sign.go')
-rw-r--r--cmd_sign.go60
1 files changed, 28 insertions, 32 deletions
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
}