try again

This commit is contained in:
Sun Yimin 2022-06-14 11:44:06 +08:00 committed by GitHub
parent 4f2585ddbc
commit 4c532200a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -82,30 +82,42 @@ func Test_gfpBasicOperations(t *testing.T) {
} }
func TestGfpExp(t *testing.T) { func TestGfpExp(t *testing.T) {
xI := bigFromHex("85AEF3D078640C98597B6027B441A01FF1DD2C190F5E93C454806C11D8806141") xI := bigFromHex("9093a2b979e6186f43a9b28d41ba644d533377f2ede8c66b19774bf4a9c7a596")
x := fromBigInt(xI) x := fromBigInt(xI)
ret := &gfP{} ret, ret3 := &gfP{}, &gfP{}
ret.exp(x, pMinus2) ret.exp(x, pMinus2)
ret1 := &gfP{} gfpMul(ret3, x, ret)
ret1.exp2(x, bigFromHex("b640000002a3a6f1d603ab4ff58ec74521f2934b1a7aeedbe56f9b27e351457b")) if *ret3 != *one {
if ret1.String() == ret.String() { t.Errorf("got %v, expected %v\n", ret3, one)
t.Errorf("exp not same")
} }
montDecode(ret, ret)
ret2 := new(big.Int).Exp(xI, bigFromHex("b640000002a3a6f1d603ab4ff58ec74521f2934b1a7aeedbe56f9b27e351457b"), p) ret2 := new(big.Int).Exp(xI, bigFromHex("b640000002a3a6f1d603ab4ff58ec74521f2934b1a7aeedbe56f9b27e351457b"), p)
if hex.EncodeToString(ret2.Bytes()) == ret.String() { if hex.EncodeToString(ret2.Bytes()) != ret.String() {
t.Errorf("exp not same") t.Errorf("exp not same, got %v, expected %v\n", ret, hex.EncodeToString(ret2.Bytes()))
} }
xInv := new(big.Int).ModInverse(xI, p) xInv := new(big.Int).ModInverse(xI, p)
if hex.EncodeToString(ret2.Bytes()) != hex.EncodeToString(xInv.Bytes()) { if hex.EncodeToString(ret2.Bytes()) != hex.EncodeToString(xInv.Bytes()) {
t.Errorf("exp not same, got %v, expected %v\n", hex.EncodeToString(ret2.Bytes()), hex.EncodeToString(xInv.Bytes())) t.Errorf("exp not same, got %v, expected %v\n", hex.EncodeToString(ret2.Bytes()), hex.EncodeToString(xInv.Bytes()))
} }
x2 := new(big.Int).Mul(xI, xInv)
x2.Mod(x2, p)
if big.NewInt(1).Cmp(x2) != 0 {
t.Errorf("not same")
}
xInvGfp := fromBigInt(xInv)
gfpMul(ret, x, xInvGfp)
if *ret != *one {
t.Errorf("got %v, expected %v", ret, one)
}
} }
func TestGfpInvert(t *testing.T) { func TestGfpInvert(t *testing.T) {
x := fromBigInt(bigFromHex("9093a2b979e6186f43a9b28d41ba644d533377f2ede8c66b19774bf4a9c7a596")) x := fromBigInt(bigFromHex("85AEF3D078640C98597B6027B441A01FF1DD2C190F5E93C454806C11D8806141"))
xInv := &gfP{} xInv := &gfP{}
xInv.Invert(x) xInv.Invert(x)
y := &gfP{} y := &gfP{}