From a1152d457156263eba945e18bafad7ccdbf9efd8 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 2 May 2017 22:29:34 +0200 Subject: verify with --- check.go | 2 +- file/names.go | 4 ++++ sign.go | 10 ++++++---- verify.go | 38 ++++++++++++++++++++++---------------- 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/check.go b/check.go index f3fe33d..e576dff 100644 --- a/check.go +++ b/check.go @@ -21,6 +21,6 @@ func check() error { files[i] = args.Arg(i) } fmt.Println(files) - _, _, _ = quiet, pubFile, sigFile + _, _, _ = quiet, pubFile, sigFile // TODO return nil } diff --git a/file/names.go b/file/names.go index 6846097..2ee1518 100644 --- a/file/names.go +++ b/file/names.go @@ -35,3 +35,7 @@ func PubFile(comment string) (string, bool) { } return "", false } + +func VerifyWith(encFile string) string { + return verifyWith + PubName(encFile) +} diff --git a/sign.go b/sign.go index f3d841d..692468e 100644 --- a/sign.go +++ b/sign.go @@ -2,7 +2,6 @@ package main import ( "flag" - "fmt" "io/ioutil" "os" @@ -30,7 +29,10 @@ func sign() error { args.Usage() return nil } - _, _ = zip, sigFile + if *sigFile == "" { + *sigFile = *msgFile + ".sig" + } + _ = zip // TODO encKey, err := OpenEnc(*encFile) if err != nil { @@ -46,13 +48,13 @@ func sign() error { return err } block := &file.Block{ - Comment: fmt.Sprintf("verify with %s", file.PubName(*encFile)), + Comment: file.VerifyWith(*encFile), Bytes: sigRaw, } if *embedded { block.Message = body } - if err := file.EncodeFile(*msgFile+".sig", file.SigMode, block); err != nil { + if err := file.EncodeFile(*sigFile, file.SigMode, block); err != nil { return err } return nil 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