From d8a696cdbc29c1966e4f14c80c4e9d06e36b7dd5 Mon Sep 17 00:00:00 2001 From: Vladimir Belousov Date: Fri, 22 Mar 2019 16:28:58 +0800 Subject: [PATCH] Verification of files notarized via /hashes entry-point supported --- main.go | 2 +- verify.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index a8df672..5ae2307 100644 --- a/main.go +++ b/main.go @@ -18,7 +18,7 @@ func main() { app := cli.NewApp() app.Name = "Verifyhash" - app.Version = "2.0" + app.Version = "2.1" app.Compiled = time.Now() app.Copyright = "(c) 2016 Acronis International GmbH" app.Usage = "Acronis Notary verify hash CLI utility" diff --git a/verify.go b/verify.go index 4d83608..c2d3e6a 100644 --- a/verify.go +++ b/verify.go @@ -41,9 +41,15 @@ func verifyMerkleProof(proof gomerkle.Proof, root, eTag string) error { return errInvalidRoot } - value := sha256.Sum256([]byte(eTag)) tree := gomerkle.NewTree(sha256.New()) - valid := tree.VerifyProof(proof, rootByte, value[:]) + eTagByte, _ := hex.DecodeString(eTag) + valid := tree.VerifyProof(proof, rootByte, eTagByte) + if valid { + return nil + } + + value := sha256.Sum256([]byte(eTag)) + valid = tree.VerifyProof(proof, rootByte, value[:]) if !valid { return errors.New("Invalid proof or eTag") }