From 64ae9e0462a3378e6581296fa3c663ba61d7f13f Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 24 Jul 2017 11:28:35 +0200 Subject: Split --- verify.go | 60 ++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 14 deletions(-) (limited to 'verify.go') diff --git a/verify.go b/verify.go index 6984382..bf6f8f2 100644 --- a/verify.go +++ b/verify.go @@ -36,29 +36,61 @@ func verify(args []string) error { } _ = keyType // TODO - sig, msg, verifyWith, err := openSig(*sigFile) + switch { + case *zip: + if err := verifyGzip(*pubFile, *msgFile); err != nil { + return err + } + case *embedded: + if err := verifyEmbedded(*pubFile, *sigFile); err != nil { + return err + } + default: + if err := verifyPlain(*pubFile, *sigFile, *msgFile); err != nil { + return err + } + } + if !*quiet { + fmt.Println("Signature Verified") + } + return nil +} + +func verifyPlain(pubFile, sigFile, msgFile string) error { + msg, err := ioutil.ReadFile(msgFile) if err != nil { return err } - if *pubFile == "" { - *pubFile = verifyWith - } - pubKey, err := openPub(*pubFile) + sig, _, verifyWith, err := openSig(sigFile) if err != nil { return err } - if !*embedded { - msg, err = ioutil.ReadFile(*msgFile) - if err != nil { - return err - } + if pubFile == "" { + pubFile = verifyWith } - if err := sig.Verify(msg, pubKey); err != nil { + pub, err := openPub(pubFile) + if err != nil { return err } - if !*quiet { - fmt.Println("Signature Verified") + return sig.Verify(msg, pub) +} + +func verifyEmbedded(pubFile, sigFile string) error { + sig, msg, verifyWith, err := openSig(sigFile) + if err != nil { + return err + } + if pubFile == "" { + pubFile = verifyWith } + pub, err := openPub(pubFile) + if err != nil { + return err + } + return sig.Verify(msg, pub) +} + +func verifyGzip(pubFile, msgFile string) error { return nil } @@ -82,6 +114,6 @@ func openSig(fname string) (*key.Sig, []byte, string, error) { if err := sig.Validate(); err != nil { return nil, nil, "", err } - pubKey, _ := file.PubFile(comment) + pubKey := file.PubFile(comment) return sig, msg, pubKey, nil } -- cgit v1.2.3