From de1c178aed8df57192505ab8b1aae7a579a1ba76 Mon Sep 17 00:00:00 2001 From: Emman Date: Wed, 10 Feb 2021 15:26:20 +0800 Subject: [PATCH] MAGIC - fix Inverse method --- sm2/p256_asm.go | 14 +++++++------- sm2/p256_asm_test.go | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sm2/p256_asm.go b/sm2/p256_asm.go index b8668ba..f5bd1ab 100644 --- a/sm2/p256_asm.go +++ b/sm2/p256_asm.go @@ -194,16 +194,16 @@ func (curve p256Curve) Inverse(k *big.Int) *big.Int { p256OrdMul(x, x, t) // _fffffffeffffffffffffffffffffffff sqrs := []uint8{ - 3, 3, 11, 5, 3, 5, 1, - 3, 7, 5, 9, 7, 2, 2, - 5, 4, 5, 2, 2, 7, 3, - 5, 5, 6, 2, 6, 3, 5, + 4, 3, 11, 5, 3, 5, 1, + 3, 7, 5, 9, 7, 5, 5, + 4, 5, 2, 2, 7, 3, 5, + 5, 6, 2, 6, 3, 5, } muls := [][]uint64{ _111, _1, _1111, _1111, _101, _10101, _1, - _1, _111, _11, _101, _10101, _11, _1, - _111, _111, _1111, _11, _1, _1, _1, - _111, _111, _10101, _1, _1, _1, _1} + _1, _111, _11, _101, _10101, _10101, _111, + _111, _1111, _11, _1, _1, _1, _111, + _111, _10101, _1, _1, _1, _1} for i, s := range sqrs { p256OrdSqr(x, x, int(s)) diff --git a/sm2/p256_asm_test.go b/sm2/p256_asm_test.go index 48723c7..8f9cb62 100644 --- a/sm2/p256_asm_test.go +++ b/sm2/p256_asm_test.go @@ -304,7 +304,7 @@ func Test_Inverse(t *testing.T) { nm2 := new(big.Int).Sub(n, big.NewInt(2)) nm2a := make([]uint64, 4) fromBig(nm2a, nm2) - fmt.Printf("%b, %b, %b, %b\n", nm2a[0], nm2a[1], nm2a[2], nm2a[3]) + fmt.Printf("%0b, %0b, %b, %b\n", nm2a[0], nm2a[1], nm2a[2], nm2a[3]) xInv1 := fermatInverse(x, n) fmt.Printf("expect=%s\n", hex.EncodeToString(xInv1.Bytes())) _ = P256()