Files
xgcl/sm/sm4/table_test.go
2026-05-27 23:03:00 +08:00

24 lines
490 B
Go

package sm4
import (
"fmt"
"testing"
)
func l_prime(x uint32) uint32 {
return x ^ rotl(x, 13) ^ rotl(x, 23)
}
func TestGenerateTable(t *testing.T) {
sbox16 = make([]uint32, 65536)
for i := 0; i < 65536; i++ {
x := l_prime(uint32(sbox[i&0xff]) | (uint32(sbox[(i>>8)&0xff]) << 8))
sbox16[i] = x
// sbox16Rotl[i] = (x >> 16) | (x << 16)
}
for i := 0; i < 65536; i += 4 {
fmt.Printf("0x%08x, 0x%08x, 0x%08x, 0x%08x,\n", sbox16[i], sbox16[i+1], sbox16[i+2], sbox16[i+3])
}
}