From a1152d457156263eba945e18bafad7ccdbf9efd8 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 2 May 2017 22:29:34 +0200 Subject: verify with --- verify.go | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'verify.go') diff --git a/verify.go b/verify.go index 8f0e674..1627516 100644 --- a/verify.go +++ b/verify.go @@ -31,16 +31,28 @@ func verify() error { args.Usage() return nil } - _, _, _ = embedded, keyType, sigFile + if *sigFile == "" { + *sigFile = *msgFile + ".sig" + } + _ = keyType // TODO - pubKey, err := OpenPub(*pubFile) + sig, body, verifyWith, err := OpenSig(*sigFile) if err != nil { return err } - sig, body, err := OpenSig(*msgFile) + if verifyWith != "" { + *pubFile = verifyWith + } + pubKey, err := OpenPub(*pubFile) if err != nil { return err } + if !*embedded { + body, err = ioutil.ReadFile(*msgFile) + if err != nil { + return err + } + } if err := pubKey.Verify(body, sig); err != nil { return err } @@ -65,24 +77,18 @@ func OpenPub(fname string) (*key.Pub, error) { return pubKey, nil } -func OpenSig(fname string) (*key.Sig, []byte, error) { - block, err := file.DecodeFile(fname + ".sig") +func OpenSig(fname string) (*key.Sig, []byte, string, error) { + block, err := file.DecodeFile(fname) if err != nil { - return nil, nil, err + return nil, nil, "", err } sig := new(key.Sig) if err := key.Unmarshal(block.Bytes, sig); err != nil { - return nil, nil, err + return nil, nil, "", err } if err := sig.Check(); err != nil { - return nil, nil, err - } - if len(block.Message) > 0 { - return sig, block.Message, nil - } - msg, err := ioutil.ReadFile(fname) - if err != nil { - return nil, nil, err + return nil, nil, "", err } - return sig, msg, nil + pubKey, _ := file.PubFile(block.Comment) + return sig, block.Message, pubKey, nil } -- cgit v1.2.3