From c324026725f64671bd81b71acb92e008a14cbee0 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 24 Jul 2017 13:54:57 +0200 Subject: Split it for now --- sign.go | 48 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) (limited to 'sign.go') diff --git a/sign.go b/sign.go index 8c99f4e..5600b6b 100644 --- a/sign.go +++ b/sign.go @@ -34,20 +34,54 @@ func sign(args []string) error { } _ = zip // TODO - secKey, err := openSec(*secFile) + switch { + case *zip: + if err := signGzip(*secFile, *msgFile, *sigFile); err != nil { + return err + } + case *embedded: + if err := signEmbedded(*secFile, *msgFile, *sigFile); err != nil { + return err + } + default: + if err := signPlain(*secFile, *msgFile, *sigFile); err != nil { + return err + } + } + + return nil +} + +func signPlain(secFile, msgFile, sigFile string) error { + sec, err := openSec(secFile) if err != nil { return err } - msg, err := ioutil.ReadFile(*msgFile) + msg, err := ioutil.ReadFile(msgFile) if err != nil { return err } - sig := secKey.Sign(msg) - comment := file.VerifyWith(*secFile) - if !*embedded { - msg = nil + sig := sec.Sign(msg) + comment := file.VerifyWith(secFile) + return file.EncodeFile(sigFile, file.ModeSig, sig, comment, nil) +} + +func signEmbedded(secFile, msgFile, sigFile string) error { + sec, err := openSec(secFile) + if err != nil { + return err + } + msg, err := ioutil.ReadFile(msgFile) + if err != nil { + return err } - return file.EncodeFile(*sigFile, file.ModeSig, sig, comment, msg) + sig := sec.Sign(msg) + comment := file.VerifyWith(secFile) + return file.EncodeFile(sigFile, file.ModeSig, sig, comment, msg) +} + +func signGzip(secFile, msgFile, sigFile string) error { + return nil } func openSec(fname string) (*key.Sec, error) { -- cgit v1.2.3