dockerfiles/anylink/dtls-2.0.9/pkg/crypto/fingerprint/hash_test.go

42 lines
1.0 KiB
Go
Raw Normal View History

2021-06-08 20:45:26 +08:00
package fingerprint
import (
"crypto"
"errors"
"testing"
)
func TestHashFromString(t *testing.T) {
t.Run("InvalidHashAlgorithm", func(t *testing.T) {
_, err := HashFromString("invalid-hash-algorithm")
if !errors.Is(err, errInvalidHashAlgorithm) {
t.Errorf("Expected error '%v' for invalid hash name, got '%v'", errInvalidHashAlgorithm, err)
}
})
t.Run("ValidHashAlgorithm", func(t *testing.T) {
h, err := HashFromString("sha-512")
if err != nil {
t.Fatalf("Unexpected error for valid hash name, got '%v'", err)
}
if h != crypto.SHA512 {
t.Errorf("Expected hash ID of %d, got %d", int(crypto.SHA512), int(h))
}
})
}
func TestStringFromHash_Roundtrip(t *testing.T) {
for _, h := range nameToHash() {
s, err := StringFromHash(h)
if err != nil {
t.Fatalf("Unexpected error for valid hash algorithm, got '%v'", err)
}
h2, err := HashFromString(s)
if err != nil {
t.Fatalf("Unexpected error for valid hash name, got '%v'", err)
}
if h != h2 {
t.Errorf("Hash value doesn't match, expected: 0x%x, got 0x%x", h, h2)
}
}
}