lbry.go/address/base58/checksum.go

21 lines
423 B
Go
Raw Normal View History

package base58
import "crypto/sha256"
2018-02-15 20:51:51 +01:00
const checksumLength = 4
func VerifyBase58Checksum(v []byte) bool {
2018-02-15 20:51:51 +01:00
checksum := [checksumLength]byte{}
for i := range checksum {
2018-02-15 20:51:51 +01:00
checksum[i] = v[len(v)-checksumLength+i]
}
2018-02-15 20:51:51 +01:00
real_checksum := sha256.Sum256(v[:len(v)-checksumLength])
real_checksum = sha256.Sum256(real_checksum[:])
for i, c := range checksum {
if c != real_checksum[i] {
return false
}
}
return true
}