mirror of
https://github.com/emmansun/gmsm.git
synced 2025-10-14 23:30:48 +08:00
36 lines
732 B
Go
36 lines
732 B
Go
![]() |
//go:build loong64 && !purego
|
||
|
|
||
|
package sm2ec
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"encoding/binary"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestP256BigToLittle(t *testing.T) {
|
||
|
// 构造一个已知的 32 字节大端输入
|
||
|
var in [32]byte
|
||
|
for i := 0; i < 32; i++ {
|
||
|
in[i] = byte(i + 1)
|
||
|
}
|
||
|
var out p256Element
|
||
|
|
||
|
p256BigToLittle(&out, &in)
|
||
|
|
||
|
// 检查每个 limb 是否为小端解包
|
||
|
for i := 0; i < 4; i++ {
|
||
|
expected := binary.BigEndian.Uint64(in[i*8 : (i+1)*8])
|
||
|
if out[i] != expected {
|
||
|
t.Errorf("limb %d: got 0x%x, want 0x%x", i, out[i], expected)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 逆操作测试
|
||
|
var back [32]byte
|
||
|
p256LittleToBig(&back, &out)
|
||
|
if !bytes.Equal(in[:], back[:]) {
|
||
|
t.Errorf("p256LittleToBig(p256BigToLittle(...)) mismatch\nin: %x\nback: %x", in, back)
|
||
|
}
|
||
|
}
|