Without looking too much at it, this seems to be somehow wrong:
if ecdsa.Verify(&rawPubKey, hash[:], &r, &s) == false {
fmt.Printf("%s\n", "true")
}else{
fmt.Printf("%s\n", "false")
}
}
It may be the case, if the signature is actually correct and your code runs properly, that you are misinterpreting the output because you are printing
true if it the verify function returns
false and vice versa.
So if you are actually getting the output
false, the signature has been verified properly.
my friend , i make a mistake just now, now i return false too. so can you help me find why fault??