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") }