gmsm/sm4/cipher_asm_fuzzy_test.go

45 lines
847 B
Go
Raw Normal View History

2024-03-05 09:47:49 +08:00
//go:build (amd64 || arm64) && !purego
2022-01-21 11:24:10 +08:00
package sm4
import (
"crypto/rand"
"io"
"reflect"
"testing"
"time"
)
func TestExpandKey(t *testing.T) {
key := make([]byte, 16)
2024-03-27 08:38:25 +08:00
var encRes1 [rounds]uint32
var decRes1 [rounds]uint32
2022-01-21 11:24:10 +08:00
encRes2 := make([]uint32, 32)
decRes2 := make([]uint32, 32)
var timeout *time.Timer
if testing.Short() {
timeout = time.NewTimer(10 * time.Millisecond)
} else {
timeout = time.NewTimer(2 * time.Second)
}
for {
select {
case <-timeout.C:
return
default:
}
io.ReadFull(rand.Reader, key)
2024-03-27 08:38:25 +08:00
expandKeyGo(key, &encRes1, &decRes1)
expandKey(key, encRes2, decRes2)
2024-03-27 08:38:25 +08:00
if !reflect.DeepEqual(encRes1[:], encRes2) {
t.Errorf("expected=%x, result=%x\n", encRes1[:], encRes2)
2022-01-21 11:24:10 +08:00
}
2024-03-27 08:38:25 +08:00
if !reflect.DeepEqual(decRes1[:], decRes2) {
t.Errorf("expected=%x, result=%x\n", decRes1[:], decRes2)
2022-01-21 11:24:10 +08:00
}
}
}