aboutsummaryrefslogtreecommitdiff
path: root/verify.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-05-02 22:29:34 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-05-02 22:29:34 +0200
commita1152d457156263eba945e18bafad7ccdbf9efd8 (patch)
tree7c19023a78cf2f08588f9ae39f36a49befdbec94 /verify.go
parent391e198592a23c53f65710ba71635b6060cae009 (diff)
verify with
Diffstat (limited to 'verify.go')
-rw-r--r--verify.go38
1 files changed, 22 insertions, 16 deletions
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
}