github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/crypto/hash/hash_test.go (about) 1 package hash 2 3 import ( 4 "encoding/binary" 5 "encoding/hex" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestSha256(t *testing.T) { 13 input := []byte("hello") 14 data := Sha256(input) 15 16 expected := "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" 17 actual := hex.EncodeToString(data.BytesBE()) 18 19 assert.Equal(t, expected, actual) 20 } 21 22 func TestHashDoubleSha256(t *testing.T) { 23 input := []byte("hello") 24 data := DoubleSha256(input) 25 26 firstSha := Sha256(input) 27 doubleSha := Sha256(firstSha.BytesBE()) 28 expected := hex.EncodeToString(doubleSha.BytesBE()) 29 30 actual := hex.EncodeToString(data.BytesBE()) 31 assert.Equal(t, expected, actual) 32 } 33 34 func TestHashRipeMD160(t *testing.T) { 35 input := []byte("hello") 36 data := RipeMD160(input) 37 38 expected := "108f07b8382412612c048d07d13f814118445acd" 39 actual := hex.EncodeToString(data.BytesBE()) 40 assert.Equal(t, expected, actual) 41 } 42 43 func TestHash160(t *testing.T) { 44 input := "02cccafb41b220cab63fd77108d2d1ebcffa32be26da29a04dca4996afce5f75db" 45 publicKeyBytes, _ := hex.DecodeString(input) 46 data := Hash160(publicKeyBytes) 47 48 expected := "c8e2b685cc70ec96743b55beb9449782f8f775d8" 49 actual := hex.EncodeToString(data.BytesBE()) 50 assert.Equal(t, expected, actual) 51 } 52 53 func TestChecksum(t *testing.T) { 54 testCases := []struct { 55 data []byte 56 sum uint32 57 }{ 58 {nil, 0xe2e0f65d}, 59 {[]byte{}, 0xe2e0f65d}, 60 {[]byte{1, 2, 3, 4}, 0xe272e48d}, 61 } 62 63 for _, tc := range testCases { 64 require.Equal(t, tc.sum, binary.LittleEndian.Uint32(Checksum(tc.data))) 65 } 66 }